gitverse-api-sdk 3.0.0 → 3.2.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 +99 -2
- package/dist/api/actions.d.ts +58 -39
- package/dist/api/actions.js +3 -3
- package/dist/api/actions.js.map +3 -3
- package/dist/api/branches.d.ts +26 -7
- package/dist/api/branches.js +3 -3
- package/dist/api/branches.js.map +3 -3
- package/dist/api/collaborators.d.ts +27 -8
- package/dist/api/collaborators.js +3 -3
- package/dist/api/collaborators.js.map +3 -3
- package/dist/api/commits.d.ts +28 -9
- package/dist/api/commits.js +3 -3
- package/dist/api/commits.js.map +3 -3
- package/dist/api/contents.d.ts +29 -10
- package/dist/api/contents.js +3 -3
- package/dist/api/contents.js.map +3 -3
- package/dist/api/emails.d.ts +28 -9
- package/dist/api/emails.js +3 -3
- package/dist/api/emails.js.map +3 -3
- package/dist/api/forks.d.ts +26 -7
- package/dist/api/forks.js +3 -3
- package/dist/api/forks.js.map +3 -3
- package/dist/api/git.d.ts +28 -9
- package/dist/api/git.js +3 -3
- package/dist/api/git.js.map +3 -3
- package/dist/api/issues.d.ts +31 -12
- package/dist/api/issues.js +3 -3
- package/dist/api/issues.js.map +3 -3
- package/dist/api/organizations.d.ts +26 -7
- package/dist/api/organizations.js +3 -3
- package/dist/api/organizations.js.map +3 -3
- package/dist/api/pulls.d.ts +40 -13
- package/dist/api/pulls.js +3 -3
- package/dist/api/pulls.js.map +3 -3
- package/dist/api/releases.d.ts +35 -16
- package/dist/api/releases.js +3 -3
- package/dist/api/releases.js.map +3 -3
- package/dist/api/repositories.d.ts +32 -13
- package/dist/api/repositories.js +3 -3
- package/dist/api/repositories.js.map +3 -3
- package/dist/api/stars.d.ts +29 -10
- package/dist/api/stars.js +3 -3
- package/dist/api/stars.js.map +3 -3
- package/dist/api/teams.d.ts +29 -10
- package/dist/api/teams.js +3 -3
- package/dist/api/teams.js.map +3 -3
- package/dist/api/users.d.ts +27 -8
- package/dist/api/users.js +3 -3
- package/dist/api/users.js.map +3 -3
- package/dist/client.d.ts +25 -6
- package/dist/client.js +3 -3
- package/dist/client.js.map +3 -3
- package/dist/index.d.ts +124 -97
- package/dist/types.d.ts +14 -1
- package/package.json +1 -1
package/dist/api/stars.d.ts
CHANGED
|
@@ -22,6 +22,19 @@ declare const VisibilityType: {
|
|
|
22
22
|
*/
|
|
23
23
|
type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
|
|
24
24
|
/**
|
|
25
|
+
* Опции для выполнения HTTP-запросов
|
|
26
|
+
*/
|
|
27
|
+
interface RequestOptions {
|
|
28
|
+
/**
|
|
29
|
+
* AbortSignal для отмены запроса
|
|
30
|
+
* @example
|
|
31
|
+
* const controller = new AbortController();
|
|
32
|
+
* const promise = client.users.getCurrent({ signal: controller.signal });
|
|
33
|
+
* controller.abort(); // Отменяет запрос
|
|
34
|
+
*/
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
25
38
|
* Интерфейс пользователя
|
|
26
39
|
*/
|
|
27
40
|
interface User2 {
|
|
@@ -252,45 +265,51 @@ declare class GitVerseClient {
|
|
|
252
265
|
* @param path Путь к API-ресурсу
|
|
253
266
|
* @param method HTTP-метод
|
|
254
267
|
* @param body Тело запроса (опционально)
|
|
268
|
+
* @param options Опции запроса (опционально)
|
|
255
269
|
* @returns Ответ от API
|
|
256
270
|
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
257
271
|
* @throws {GitVerseApiError} При других ошибках API
|
|
258
272
|
*/
|
|
259
|
-
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
273
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
260
274
|
/**
|
|
261
275
|
* Выполняет GET-запрос
|
|
262
276
|
* @param path Путь к API-ресурсу
|
|
277
|
+
* @param options Опции запроса (опционально)
|
|
263
278
|
* @returns Ответ от API
|
|
264
279
|
*/
|
|
265
|
-
get<T>(path: string): Promise<T>;
|
|
280
|
+
get<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
266
281
|
/**
|
|
267
282
|
* Выполняет POST-запрос
|
|
268
283
|
* @param path Путь к API-ресурсу
|
|
269
284
|
* @param body Тело запроса
|
|
285
|
+
* @param options Опции запроса (опционально)
|
|
270
286
|
* @returns Ответ от API
|
|
271
287
|
*/
|
|
272
|
-
post<T>(path: string, body?: unknown): Promise<T>;
|
|
288
|
+
post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
273
289
|
/**
|
|
274
290
|
* Выполняет PUT-запрос
|
|
275
291
|
* @param path Путь к API-ресурсу
|
|
276
292
|
* @param body Тело запроса
|
|
293
|
+
* @param options Опции запроса (опционально)
|
|
277
294
|
* @returns Ответ от API
|
|
278
295
|
*/
|
|
279
|
-
put<T>(path: string, body?: unknown): Promise<T>;
|
|
296
|
+
put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
280
297
|
/**
|
|
281
298
|
* Выполняет DELETE-запрос
|
|
282
299
|
* @param path Путь к API-ресурсу
|
|
283
300
|
* @param body Тело запроса (опционально)
|
|
301
|
+
* @param options Опции запроса (опционально)
|
|
284
302
|
* @returns Ответ от API
|
|
285
303
|
*/
|
|
286
|
-
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
304
|
+
delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
287
305
|
/**
|
|
288
306
|
* Выполняет PATCH-запрос
|
|
289
307
|
* @param path Путь к API-ресурсу
|
|
290
308
|
* @param body Тело запроса
|
|
309
|
+
* @param options Опции запроса (опционально)
|
|
291
310
|
* @returns Ответ от API
|
|
292
311
|
*/
|
|
293
|
-
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
312
|
+
patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
294
313
|
}
|
|
295
314
|
/**
|
|
296
315
|
* Класс для работы со звездами репозиториев
|
|
@@ -302,27 +321,27 @@ declare class StarsApi {
|
|
|
302
321
|
* Получить список репозиториев, отмеченных звездой
|
|
303
322
|
* @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой
|
|
304
323
|
*/
|
|
305
|
-
list(): Promise<Repository[]>;
|
|
324
|
+
list(options?: RequestOptions): Promise<Repository[]>;
|
|
306
325
|
/**
|
|
307
326
|
* Добавить звезду репозиторию
|
|
308
327
|
* @param {string} owner - Владелец репозитория
|
|
309
328
|
* @param {string} repo - Название репозитория
|
|
310
329
|
* @returns {Promise<void>} Результат операции (204 No Content при успехе)
|
|
311
330
|
*/
|
|
312
|
-
add(owner: string, repo: string): Promise<void>;
|
|
331
|
+
add(owner: string, repo: string, options?: RequestOptions): Promise<void>;
|
|
313
332
|
/**
|
|
314
333
|
* Проверить, отмечен ли репозиторий звездой
|
|
315
334
|
* @param {string} owner - Владелец репозитория
|
|
316
335
|
* @param {string} repo - Название репозитория
|
|
317
336
|
* @returns {Promise<boolean>} true если отмечен звездой, false если нет
|
|
318
337
|
*/
|
|
319
|
-
check(owner: string, repo: string): Promise<boolean>;
|
|
338
|
+
check(owner: string, repo: string, options?: RequestOptions): Promise<boolean>;
|
|
320
339
|
/**
|
|
321
340
|
* Убрать звезду с репозитория
|
|
322
341
|
* @param {string} owner - Владелец репозитория
|
|
323
342
|
* @param {string} repo - Название репозитория
|
|
324
343
|
* @returns {Promise<void>} Результат операции
|
|
325
344
|
*/
|
|
326
|
-
remove(owner: string, repo: string): Promise<void>;
|
|
345
|
+
remove(owner: string, repo: string, options?: RequestOptions): Promise<void>;
|
|
327
346
|
}
|
|
328
347
|
export { StarsApi };
|
package/dist/api/stars.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{v as
|
|
2
|
-
export{
|
|
1
|
+
import{v as j}from"../errors.js";class k{client;constructor(b){this.client=b}list(b){return this.client.get("/user/starred",b)}async add(b,c,f){await this.client.put(`/user/starred/${b}/${c}`,void 0,f)}async check(b,c,f){try{return await this.client.get(`/user/starred/${b}/${c}`,f),!0}catch(h){if(h instanceof j&&h.status===404)return!1;throw h}}async remove(b,c,f){await this.client.delete(`/user/starred/${b}/${c}`,void 0,f)}}export{k as StarsApi};
|
|
2
|
+
export{k as d};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=564646714BD1767364756E2164756E21
|
package/dist/api/stars.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/api/stars.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GitVerseClient } from \"../client\";\nimport { GitVerseApiError } from \"../errors\";\nimport type { Repository } from \"../types\";\n\n/**\n * Класс для работы со звездами репозиториев\n */\nexport class StarsApi {\n constructor(private client: GitVerseClient) {}\n\n /**\n * Получить список репозиториев, отмеченных звездой\n * @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой\n */\n list(): Promise<Repository[]> {\n return this.client.get<Repository[]>(\"/user/starred\");\n }\n\n /**\n * Добавить звезду репозиторию\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции (204 No Content при успехе)\n */\n async add(owner: string, repo: string): Promise<void> {\n await this.client.put<void>(`/user/starred/${owner}/${repo}
|
|
5
|
+
"import type { GitVerseClient } from \"../client\";\nimport { GitVerseApiError } from \"../errors\";\nimport type { Repository, RequestOptions } from \"../types\";\n\n/**\n * Класс для работы со звездами репозиториев\n */\nexport class StarsApi {\n constructor(private client: GitVerseClient) {}\n\n /**\n * Получить список репозиториев, отмеченных звездой\n * @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой\n */\n list(options?: RequestOptions): Promise<Repository[]> {\n return this.client.get<Repository[]>(\"/user/starred\", options);\n }\n\n /**\n * Добавить звезду репозиторию\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции (204 No Content при успехе)\n */\n async add(owner: string, repo: string, options?: RequestOptions): Promise<void> {\n await this.client.put<void>(`/user/starred/${owner}/${repo}`, undefined, options);\n }\n\n /**\n * Проверить, отмечен ли репозиторий звездой\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<boolean>} true если отмечен звездой, false если нет\n */\n async check(owner: string, repo: string, options?: RequestOptions): Promise<boolean> {\n try {\n await this.client.get<void>(`/user/starred/${owner}/${repo}`, options);\n return true;\n } catch (error: unknown) {\n // 404 означает, что репозиторий не отмечен звездой\n if (error instanceof GitVerseApiError && error.status === 404) {\n return false;\n }\n throw error;\n }\n }\n\n /**\n * Убрать звезду с репозитория\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции\n */\n async remove(owner: string, repo: string, options?: RequestOptions): Promise<void> {\n await this.client.delete<void>(`/user/starred/${owner}/${repo}`, undefined, options);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "iCAOO,MAAM,CAAS,CACA,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "iCAOO,MAAM,CAAS,CACA,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,CAAC,EAAiD,CACpD,OAAO,KAAK,OAAO,IAAkB,gBAAiB,CAAO,OASzD,IAAG,CAAC,EAAe,EAAc,EAAyC,CAC9E,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,IAAQ,OAAW,CAAO,OAS5E,MAAK,CAAC,EAAe,EAAc,EAA4C,CACnF,GAAI,CAEF,OADA,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,IAAQ,CAAO,EAC9D,GACP,MAAO,EAAgB,CAEvB,GAAI,aAAiB,GAAoB,EAAM,SAAW,IACxD,MAAO,GAET,MAAM,QAUJ,OAAM,CAAC,EAAe,EAAc,EAAyC,CACjF,MAAM,KAAK,OAAO,OAAa,iBAAiB,KAAS,IAAQ,OAAW,CAAO,EAEvF",
|
|
8
|
+
"debugId": "564646714BD1767364756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/teams.d.ts
CHANGED
|
@@ -22,6 +22,19 @@ declare const VisibilityType: {
|
|
|
22
22
|
*/
|
|
23
23
|
type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
|
|
24
24
|
/**
|
|
25
|
+
* Опции для выполнения HTTP-запросов
|
|
26
|
+
*/
|
|
27
|
+
interface RequestOptions {
|
|
28
|
+
/**
|
|
29
|
+
* AbortSignal для отмены запроса
|
|
30
|
+
* @example
|
|
31
|
+
* const controller = new AbortController();
|
|
32
|
+
* const promise = client.users.getCurrent({ signal: controller.signal });
|
|
33
|
+
* controller.abort(); // Отменяет запрос
|
|
34
|
+
*/
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
25
38
|
* Интерфейс пользователя
|
|
26
39
|
*/
|
|
27
40
|
interface User2 {
|
|
@@ -204,45 +217,51 @@ declare class GitVerseClient {
|
|
|
204
217
|
* @param path Путь к API-ресурсу
|
|
205
218
|
* @param method HTTP-метод
|
|
206
219
|
* @param body Тело запроса (опционально)
|
|
220
|
+
* @param options Опции запроса (опционально)
|
|
207
221
|
* @returns Ответ от API
|
|
208
222
|
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
209
223
|
* @throws {GitVerseApiError} При других ошибках API
|
|
210
224
|
*/
|
|
211
|
-
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
225
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
212
226
|
/**
|
|
213
227
|
* Выполняет GET-запрос
|
|
214
228
|
* @param path Путь к API-ресурсу
|
|
229
|
+
* @param options Опции запроса (опционально)
|
|
215
230
|
* @returns Ответ от API
|
|
216
231
|
*/
|
|
217
|
-
get<T>(path: string): Promise<T>;
|
|
232
|
+
get<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
218
233
|
/**
|
|
219
234
|
* Выполняет POST-запрос
|
|
220
235
|
* @param path Путь к API-ресурсу
|
|
221
236
|
* @param body Тело запроса
|
|
237
|
+
* @param options Опции запроса (опционально)
|
|
222
238
|
* @returns Ответ от API
|
|
223
239
|
*/
|
|
224
|
-
post<T>(path: string, body?: unknown): Promise<T>;
|
|
240
|
+
post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
225
241
|
/**
|
|
226
242
|
* Выполняет PUT-запрос
|
|
227
243
|
* @param path Путь к API-ресурсу
|
|
228
244
|
* @param body Тело запроса
|
|
245
|
+
* @param options Опции запроса (опционально)
|
|
229
246
|
* @returns Ответ от API
|
|
230
247
|
*/
|
|
231
|
-
put<T>(path: string, body?: unknown): Promise<T>;
|
|
248
|
+
put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
232
249
|
/**
|
|
233
250
|
* Выполняет DELETE-запрос
|
|
234
251
|
* @param path Путь к API-ресурсу
|
|
235
252
|
* @param body Тело запроса (опционально)
|
|
253
|
+
* @param options Опции запроса (опционально)
|
|
236
254
|
* @returns Ответ от API
|
|
237
255
|
*/
|
|
238
|
-
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
256
|
+
delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
239
257
|
/**
|
|
240
258
|
* Выполняет PATCH-запрос
|
|
241
259
|
* @param path Путь к API-ресурсу
|
|
242
260
|
* @param body Тело запроса
|
|
261
|
+
* @param options Опции запроса (опционально)
|
|
243
262
|
* @returns Ответ от API
|
|
244
263
|
*/
|
|
245
|
-
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
264
|
+
patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
246
265
|
}
|
|
247
266
|
/**
|
|
248
267
|
* API для работы с командами организации
|
|
@@ -259,21 +278,21 @@ declare class TeamsApi {
|
|
|
259
278
|
* @param org Название организации
|
|
260
279
|
* @returns Список команд
|
|
261
280
|
*/
|
|
262
|
-
list(org: string): Promise<Team[]>;
|
|
281
|
+
list(org: string, options?: RequestOptions): Promise<Team[]>;
|
|
263
282
|
/**
|
|
264
283
|
* Получает список приглашений команды
|
|
265
284
|
* @param org Название организации
|
|
266
285
|
* @param team Название команды
|
|
267
286
|
* @returns Список приглашений
|
|
268
287
|
*/
|
|
269
|
-
getInvitations(org: string, team: string): Promise<Invitation[]>;
|
|
288
|
+
getInvitations(org: string, team: string, options?: RequestOptions): Promise<Invitation[]>;
|
|
270
289
|
/**
|
|
271
290
|
* Получает список членов команды
|
|
272
291
|
* @param org Название организации
|
|
273
292
|
* @param team Название команды
|
|
274
293
|
* @returns Список членов команды
|
|
275
294
|
*/
|
|
276
|
-
getMembers(org: string, team: string): Promise<User2[]>;
|
|
295
|
+
getMembers(org: string, team: string, options?: RequestOptions): Promise<User2[]>;
|
|
277
296
|
/**
|
|
278
297
|
* Добавляет репозиторий к команде
|
|
279
298
|
* @param org Название организации
|
|
@@ -282,6 +301,6 @@ declare class TeamsApi {
|
|
|
282
301
|
* @param repo Название репозитория
|
|
283
302
|
* @returns Результат операции
|
|
284
303
|
*/
|
|
285
|
-
addRepository(org: string, team: string, owner: string, repo: string): Promise<void>;
|
|
304
|
+
addRepository(org: string, team: string, owner: string, repo: string, options?: RequestOptions): Promise<void>;
|
|
286
305
|
}
|
|
287
306
|
export { TeamsApi };
|
package/dist/api/teams.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
2
|
-
export{j};
|
|
1
|
+
class k{client;constructor(b){this.client=b}list(b,d){return this.client.get(`/orgs/${b}/teams`,d)}getInvitations(b,d,f){return this.client.get(`/orgs/${b}/teams/${d}/invitations`,f)}getMembers(b,d,f){return this.client.get(`/orgs/${b}/teams/${d}/members`,f)}addRepository(b,d,f,h,j){return this.client.put(`/orgs/${b}/teams/${d}/repos/${f}/${h}`,{},j)}}export{k as TeamsApi};
|
|
2
|
+
export{k as j};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=0CD315D7704F162C64756E2164756E21
|
package/dist/api/teams.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/api/teams.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GitVerseClient } from \"../client\";\nimport type { Invitation, Team, User } from \"../types\";\n\n/**\n * API для работы с командами организации\n */\nexport class TeamsApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с командами\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Получает список команд организации\n * @param org Название организации\n * @returns Список команд\n */\n list(org: string): Promise<Team[]> {\n return this.client.get<Team[]>(`/orgs/${org}/teams
|
|
5
|
+
"import type { GitVerseClient } from \"../client\";\nimport type { Invitation, RequestOptions, Team, User } from \"../types\";\n\n/**\n * API для работы с командами организации\n */\nexport class TeamsApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с командами\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Получает список команд организации\n * @param org Название организации\n * @returns Список команд\n */\n list(org: string, options?: RequestOptions): Promise<Team[]> {\n return this.client.get<Team[]>(`/orgs/${org}/teams`, options);\n }\n\n /**\n * Получает список приглашений команды\n * @param org Название организации\n * @param team Название команды\n * @returns Список приглашений\n */\n getInvitations(org: string, team: string, options?: RequestOptions): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(`/orgs/${org}/teams/${team}/invitations`, options);\n }\n\n /**\n * Получает список членов команды\n * @param org Название организации\n * @param team Название команды\n * @returns Список членов команды\n */\n getMembers(org: string, team: string, options?: RequestOptions): Promise<User[]> {\n return this.client.get<User[]>(`/orgs/${org}/teams/${team}/members`, options);\n }\n\n /**\n * Добавляет репозиторий к команде\n * @param org Название организации\n * @param team Название команды\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Результат операции\n */\n addRepository(org: string, team: string, owner: string, repo: string, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`/orgs/${org}/teams/${team}/repos/${owner}/${repo}`, {}, options);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAQhB,IAAI,CAAC,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAQhB,IAAI,CAAC,EAAa,EAA2C,CAC3D,OAAO,KAAK,OAAO,IAAY,SAAS,UAAa,CAAO,EAS9D,cAAc,CAAC,EAAa,EAAc,EAAiD,CACzF,OAAO,KAAK,OAAO,IAAkB,SAAS,WAAa,gBAAoB,CAAO,EASxF,UAAU,CAAC,EAAa,EAAc,EAA2C,CAC/E,OAAO,KAAK,OAAO,IAAY,SAAS,WAAa,YAAgB,CAAO,EAW9E,aAAa,CAAC,EAAa,EAAc,EAAe,EAAc,EAAyC,CAC7G,OAAO,KAAK,OAAO,IAAU,SAAS,WAAa,WAAc,KAAS,IAAQ,CAAC,EAAG,CAAO,EAEjG",
|
|
8
|
+
"debugId": "0CD315D7704F162C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/users.d.ts
CHANGED
|
@@ -22,6 +22,19 @@ declare const VisibilityType: {
|
|
|
22
22
|
*/
|
|
23
23
|
type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
|
|
24
24
|
/**
|
|
25
|
+
* Опции для выполнения HTTP-запросов
|
|
26
|
+
*/
|
|
27
|
+
interface RequestOptions {
|
|
28
|
+
/**
|
|
29
|
+
* AbortSignal для отмены запроса
|
|
30
|
+
* @example
|
|
31
|
+
* const controller = new AbortController();
|
|
32
|
+
* const promise = client.users.getCurrent({ signal: controller.signal });
|
|
33
|
+
* controller.abort(); // Отменяет запрос
|
|
34
|
+
*/
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
25
38
|
* Интерфейс пользователя
|
|
26
39
|
*/
|
|
27
40
|
interface User2 {
|
|
@@ -179,45 +192,51 @@ declare class GitVerseClient {
|
|
|
179
192
|
* @param path Путь к API-ресурсу
|
|
180
193
|
* @param method HTTP-метод
|
|
181
194
|
* @param body Тело запроса (опционально)
|
|
195
|
+
* @param options Опции запроса (опционально)
|
|
182
196
|
* @returns Ответ от API
|
|
183
197
|
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
184
198
|
* @throws {GitVerseApiError} При других ошибках API
|
|
185
199
|
*/
|
|
186
|
-
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
200
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
187
201
|
/**
|
|
188
202
|
* Выполняет GET-запрос
|
|
189
203
|
* @param path Путь к API-ресурсу
|
|
204
|
+
* @param options Опции запроса (опционально)
|
|
190
205
|
* @returns Ответ от API
|
|
191
206
|
*/
|
|
192
|
-
get<T>(path: string): Promise<T>;
|
|
207
|
+
get<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
193
208
|
/**
|
|
194
209
|
* Выполняет POST-запрос
|
|
195
210
|
* @param path Путь к API-ресурсу
|
|
196
211
|
* @param body Тело запроса
|
|
212
|
+
* @param options Опции запроса (опционально)
|
|
197
213
|
* @returns Ответ от API
|
|
198
214
|
*/
|
|
199
|
-
post<T>(path: string, body?: unknown): Promise<T>;
|
|
215
|
+
post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
200
216
|
/**
|
|
201
217
|
* Выполняет PUT-запрос
|
|
202
218
|
* @param path Путь к API-ресурсу
|
|
203
219
|
* @param body Тело запроса
|
|
220
|
+
* @param options Опции запроса (опционально)
|
|
204
221
|
* @returns Ответ от API
|
|
205
222
|
*/
|
|
206
|
-
put<T>(path: string, body?: unknown): Promise<T>;
|
|
223
|
+
put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
207
224
|
/**
|
|
208
225
|
* Выполняет DELETE-запрос
|
|
209
226
|
* @param path Путь к API-ресурсу
|
|
210
227
|
* @param body Тело запроса (опционально)
|
|
228
|
+
* @param options Опции запроса (опционально)
|
|
211
229
|
* @returns Ответ от API
|
|
212
230
|
*/
|
|
213
|
-
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
231
|
+
delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
214
232
|
/**
|
|
215
233
|
* Выполняет PATCH-запрос
|
|
216
234
|
* @param path Путь к API-ресурсу
|
|
217
235
|
* @param body Тело запроса
|
|
236
|
+
* @param options Опции запроса (опционально)
|
|
218
237
|
* @returns Ответ от API
|
|
219
238
|
*/
|
|
220
|
-
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
239
|
+
patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
221
240
|
}
|
|
222
241
|
/**
|
|
223
242
|
* API для работы с пользователями
|
|
@@ -233,12 +252,12 @@ declare class UsersApi {
|
|
|
233
252
|
* Получает информацию о текущем авторизованном пользователе
|
|
234
253
|
* @returns Данные о пользователе
|
|
235
254
|
*/
|
|
236
|
-
getCurrent(): Promise<CurrentUser>;
|
|
255
|
+
getCurrent(options?: RequestOptions): Promise<CurrentUser>;
|
|
237
256
|
/**
|
|
238
257
|
* Получает информацию о пользователе по имени пользователя
|
|
239
258
|
* @param username Имя пользователя
|
|
240
259
|
* @returns Данные о пользователе
|
|
241
260
|
*/
|
|
242
|
-
getByUsername(username: string): Promise<User2>;
|
|
261
|
+
getByUsername(username: string, options?: RequestOptions): Promise<User2>;
|
|
243
262
|
}
|
|
244
263
|
export { UsersApi };
|
package/dist/api/users.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
2
|
-
export{
|
|
1
|
+
class f{client;constructor(b){this.client=b}getCurrent(b){return this.client.get("/user",b)}getByUsername(b,d){return this.client.get(`/users/${b}`,d)}}export{f as UsersApi};
|
|
2
|
+
export{f as y};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=50B40EEEBF94B1DC64756E2164756E21
|
package/dist/api/users.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/api/users.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GitVerseClient } from \"../client\";\nimport type { CurrentUser, User } from \"../types\";\n\n/**\n * API для работы с пользователями\n */\nexport class UsersApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с пользователями\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Получает информацию о текущем авторизованном пользователе\n * @returns Данные о пользователе\n */\n getCurrent(): Promise<CurrentUser> {\n return this.client.get<CurrentUser>(\"/user\");\n }\n\n /**\n * Получает информацию о пользователе по имени пользователя\n * @param username Имя пользователя\n * @returns Данные о пользователе\n */\n getByUsername(username: string): Promise<User> {\n return this.client.get<User>(`/users/${username}
|
|
5
|
+
"import type { GitVerseClient } from \"../client\";\nimport type { CurrentUser, RequestOptions, User } from \"../types\";\n\n/**\n * API для работы с пользователями\n */\nexport class UsersApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с пользователями\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Получает информацию о текущем авторизованном пользователе\n * @returns Данные о пользователе\n */\n getCurrent(options?: RequestOptions): Promise<CurrentUser> {\n return this.client.get<CurrentUser>(\"/user\", options);\n }\n\n /**\n * Получает информацию о пользователе по имени пользователя\n * @param username Имя пользователя\n * @returns Данные о пользователе\n */\n getByUsername(username: string, options?: RequestOptions): Promise<User> {\n return this.client.get<User>(`/users/${username}`, options);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAOhB,UAAU,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAOhB,UAAU,CAAC,EAAgD,CACzD,OAAO,KAAK,OAAO,IAAiB,QAAS,CAAO,EAQtD,aAAa,CAAC,EAAkB,EAAyC,CACvE,OAAO,KAAK,OAAO,IAAU,UAAU,IAAY,CAAO,EAE9D",
|
|
8
|
+
"debugId": "50B40EEEBF94B1DC64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Опции для выполнения HTTP-запросов
|
|
3
|
+
*/
|
|
4
|
+
interface RequestOptions {
|
|
5
|
+
/**
|
|
6
|
+
* AbortSignal для отмены запроса
|
|
7
|
+
* @example
|
|
8
|
+
* const controller = new AbortController();
|
|
9
|
+
* const promise = client.users.getCurrent({ signal: controller.signal });
|
|
10
|
+
* controller.abort(); // Отменяет запрос
|
|
11
|
+
*/
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
2
15
|
* Предупреждение об устаревшей версии API
|
|
3
16
|
*/
|
|
4
17
|
declare class ApiVersionWarning {
|
|
@@ -79,44 +92,50 @@ declare class GitVerseClient {
|
|
|
79
92
|
* @param path Путь к API-ресурсу
|
|
80
93
|
* @param method HTTP-метод
|
|
81
94
|
* @param body Тело запроса (опционально)
|
|
95
|
+
* @param options Опции запроса (опционально)
|
|
82
96
|
* @returns Ответ от API
|
|
83
97
|
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
84
98
|
* @throws {GitVerseApiError} При других ошибках API
|
|
85
99
|
*/
|
|
86
|
-
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
100
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
87
101
|
/**
|
|
88
102
|
* Выполняет GET-запрос
|
|
89
103
|
* @param path Путь к API-ресурсу
|
|
104
|
+
* @param options Опции запроса (опционально)
|
|
90
105
|
* @returns Ответ от API
|
|
91
106
|
*/
|
|
92
|
-
get<T>(path: string): Promise<T>;
|
|
107
|
+
get<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
93
108
|
/**
|
|
94
109
|
* Выполняет POST-запрос
|
|
95
110
|
* @param path Путь к API-ресурсу
|
|
96
111
|
* @param body Тело запроса
|
|
112
|
+
* @param options Опции запроса (опционально)
|
|
97
113
|
* @returns Ответ от API
|
|
98
114
|
*/
|
|
99
|
-
post<T>(path: string, body?: unknown): Promise<T>;
|
|
115
|
+
post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
100
116
|
/**
|
|
101
117
|
* Выполняет PUT-запрос
|
|
102
118
|
* @param path Путь к API-ресурсу
|
|
103
119
|
* @param body Тело запроса
|
|
120
|
+
* @param options Опции запроса (опционально)
|
|
104
121
|
* @returns Ответ от API
|
|
105
122
|
*/
|
|
106
|
-
put<T>(path: string, body?: unknown): Promise<T>;
|
|
123
|
+
put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
107
124
|
/**
|
|
108
125
|
* Выполняет DELETE-запрос
|
|
109
126
|
* @param path Путь к API-ресурсу
|
|
110
127
|
* @param body Тело запроса (опционально)
|
|
128
|
+
* @param options Опции запроса (опционально)
|
|
111
129
|
* @returns Ответ от API
|
|
112
130
|
*/
|
|
113
|
-
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
131
|
+
delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
114
132
|
/**
|
|
115
133
|
* Выполняет PATCH-запрос
|
|
116
134
|
* @param path Путь к API-ресурсу
|
|
117
135
|
* @param body Тело запроса
|
|
136
|
+
* @param options Опции запроса (опционально)
|
|
118
137
|
* @returns Ответ от API
|
|
119
138
|
*/
|
|
120
|
-
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
139
|
+
patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
121
140
|
}
|
|
122
141
|
export { HTTPMethods, GitVerseClientConfig, GitVerseClient };
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{v as
|
|
2
|
-
export{
|
|
1
|
+
import{v as S,w as U,x as X}from"./errors.js";var F={DELETE:"DELETE",GET:"GET",PATCH:"PATCH",POST:"POST",PUT:"PUT"};class _{baseUrl;token;apiVersion;onApiVersionWarning;constructor(j={}){this.baseUrl=j.baseUrl||"https://api.gitverse.ru",this.token=j.token,this.apiVersion=j.apiVersion||"1"}setToken(j){this.token=j}extractRateLimitInfo(j){let x=j.get("GitVerse-RateLimit-Limit"),q=j.get("GitVerse-RateLimit-Remaining"),z=j.get("GitVerse-RateLimit-Retry-After"),B=j.get("Gitverse-Ratelimit-Reset");if(!(x&&q&&z&&B))return;return{limit:Number.parseInt(x,10),remaining:Number.parseInt(q,10),reset:Number.parseInt(B,10),retryAfter:Number.parseInt(z,10)}}extractApiVersionInfo(j){let x=j.get("Gitverse-Api-Version"),q=j.get("Gitverse-Api-Latest-Version"),z=j.get("Gitverse-Api-Deprecation")==="true",B=j.get("Gitverse-Api-Decommissioning");if(!(x&&q))return;return{decommissioning:B||void 0,deprecated:z,latestVersion:q,version:x}}extractMetadata(j){let x=this.extractRateLimitInfo(j),q=this.extractApiVersionInfo(j);if(q?.deprecated&&this.onApiVersionWarning){let z=new X(q.version,q.latestVersion,q.decommissioning);this.onApiVersionWarning(z)}return{apiVersion:q,rateLimit:x}}async request(j,x,q,z){let B=j.startsWith("/")?j.slice(1):j,Y=`${this.baseUrl}/${B}`,J=new Headers;if(J.set("Content-Type","application/json"),J.set("Accept",`application/vnd.gitverse.object+json; version=${this.apiVersion}`),this.token)J.set("Authorization",`Bearer ${this.token}`);let Z={body:q?JSON.stringify(q):void 0,headers:J,method:x,signal:z?.signal},D=await fetch(Y,Z),K=this.extractMetadata(D.headers),N;try{N=await D.json()}catch{N=void 0}if(!D.ok){let Q=N?.message||D.statusText;if(D.status===429&&K.rateLimit)throw new U(Q||"Превышен лимит запросов. Попробуйте позже.",K.rateLimit,K);throw new S(D.status,Q,K)}return N}get(j,x){return this.request(j,F.GET,void 0,x)}post(j,x,q){return this.request(j,F.POST,x,q)}put(j,x,q){return this.request(j,F.PUT,x,q)}delete(j,x,q){return this.request(j,F.DELETE,x,q)}patch(j,x,q){return this.request(j,F.PATCH,x,q)}}export{F as HTTPMethods,_ as GitVerseClient};
|
|
2
|
+
export{_ as o};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=DC7520293936FD5864756E2164756E21
|
package/dist/client.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/client.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { ApiVersionWarning, GitVerseApiError, RateLimitError } from \"./errors\";\nimport type { ApiError, ApiResponseMetadata, ApiVersionInfo, RateLimitInfo } from \"./types\";\nexport const HTTPMethods = {\n DELETE: \"DELETE\",\n GET: \"GET\",\n PATCH: \"PATCH\",\n POST: \"POST\",\n PUT: \"PUT\",\n} as const;\n\nexport type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];\n\n/**\n * Параметры для конфигурации GitVerse клиента\n */\nexport interface GitVerseClientConfig {\n /**\n * Базовый URL API GitVerse\n * @default 'https://api.gitverse.ru'\n */\n baseUrl?: string;\n\n /**\n * Токен доступа для авторизации в API\n */\n token?: string;\n\n /**\n * Версия API\n * @default '1'\n */\n apiVersion?: string;\n}\n\n/**\n * Основной класс для работы с GitVerse API\n */\nexport class GitVerseClient {\n private baseUrl: string;\n private token?: string;\n private apiVersion: string;\n\n /**\n * Callback для обработки предупреждений об устаревшей версии API\n */\n public onApiVersionWarning?: (warning: ApiVersionWarning) => void;\n\n /**\n * Создает новый экземпляр GitVerse клиента\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.baseUrl = config.baseUrl || \"https://api.gitverse.ru\";\n this.token = config.token;\n this.apiVersion = config.apiVersion || \"1\";\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n */\n setToken(token: string): void {\n this.token = token;\n }\n\n /**\n * Извлекает информацию о Rate Limit из заголовков ответа\n */\n private extractRateLimitInfo(headers: Headers): RateLimitInfo | undefined {\n const limit = headers.get(\"GitVerse-RateLimit-Limit\");\n const remaining = headers.get(\"GitVerse-RateLimit-Remaining\");\n const retryAfter = headers.get(\"GitVerse-RateLimit-Retry-After\");\n const reset = headers.get(\"Gitverse-Ratelimit-Reset\");\n\n if (!(limit && remaining && retryAfter && reset)) {\n return;\n }\n\n return {\n limit: Number.parseInt(limit, 10),\n remaining: Number.parseInt(remaining, 10),\n reset: Number.parseInt(reset, 10),\n retryAfter: Number.parseInt(retryAfter, 10),\n };\n }\n\n /**\n * Извлекает информацию о версии API из заголовков ответа\n */\n private extractApiVersionInfo(headers: Headers): ApiVersionInfo | undefined {\n const version = headers.get(\"Gitverse-Api-Version\");\n const latestVersion = headers.get(\"Gitverse-Api-Latest-Version\");\n const deprecated = headers.get(\"Gitverse-Api-Deprecation\") === \"true\";\n const decommissioning = headers.get(\"Gitverse-Api-Decommissioning\");\n\n if (!(version && latestVersion)) {\n return;\n }\n\n return {\n decommissioning: decommissioning || undefined,\n deprecated,\n latestVersion,\n version,\n };\n }\n\n /**\n * Извлекает метаданные из заголовков ответа\n */\n private extractMetadata(headers: Headers): ApiResponseMetadata {\n const rateLimit = this.extractRateLimitInfo(headers);\n const apiVersion = this.extractApiVersionInfo(headers);\n\n // Проверяем устаревшую версию API и вызываем callback\n if (apiVersion?.deprecated && this.onApiVersionWarning) {\n const warning = new ApiVersionWarning(apiVersion.version, apiVersion.latestVersion, apiVersion.decommissioning);\n this.onApiVersionWarning(warning);\n }\n\n return {\n apiVersion,\n rateLimit,\n };\n }\n\n /**\n * Выполняет API-запрос с учетом авторизации и версии API\n * @param path Путь к API-ресурсу\n * @param method HTTP-метод\n * @param body Тело запроса (опционально)\n * @returns Ответ от API\n * @throws {RateLimitError} При превышении лимита запросов (429)\n * @throws {GitVerseApiError} При других ошибках API\n */\n async request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T> {\n // Правильная конкатенация URL: убираем начальный / из path если он есть\n const cleanPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const url = `${this.baseUrl}/${cleanPath}`;\n\n const headers = new Headers();\n\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"Accept\", `application/vnd.gitverse.object+json; version=${this.apiVersion}`);\n\n if (this.token) {\n headers.set(\"Authorization\", `Bearer ${this.token}`);\n }\n\n const
|
|
5
|
+
"import { ApiVersionWarning, GitVerseApiError, RateLimitError } from \"./errors\";\nimport type { ApiError, ApiResponseMetadata, ApiVersionInfo, RateLimitInfo, RequestOptions } from \"./types\";\nexport const HTTPMethods = {\n DELETE: \"DELETE\",\n GET: \"GET\",\n PATCH: \"PATCH\",\n POST: \"POST\",\n PUT: \"PUT\",\n} as const;\n\nexport type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];\n\n/**\n * Параметры для конфигурации GitVerse клиента\n */\nexport interface GitVerseClientConfig {\n /**\n * Базовый URL API GitVerse\n * @default 'https://api.gitverse.ru'\n */\n baseUrl?: string;\n\n /**\n * Токен доступа для авторизации в API\n */\n token?: string;\n\n /**\n * Версия API\n * @default '1'\n */\n apiVersion?: string;\n}\n\n/**\n * Основной класс для работы с GitVerse API\n */\nexport class GitVerseClient {\n private baseUrl: string;\n private token?: string;\n private apiVersion: string;\n\n /**\n * Callback для обработки предупреждений об устаревшей версии API\n */\n public onApiVersionWarning?: (warning: ApiVersionWarning) => void;\n\n /**\n * Создает новый экземпляр GitVerse клиента\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.baseUrl = config.baseUrl || \"https://api.gitverse.ru\";\n this.token = config.token;\n this.apiVersion = config.apiVersion || \"1\";\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n */\n setToken(token: string): void {\n this.token = token;\n }\n\n /**\n * Извлекает информацию о Rate Limit из заголовков ответа\n */\n private extractRateLimitInfo(headers: Headers): RateLimitInfo | undefined {\n const limit = headers.get(\"GitVerse-RateLimit-Limit\");\n const remaining = headers.get(\"GitVerse-RateLimit-Remaining\");\n const retryAfter = headers.get(\"GitVerse-RateLimit-Retry-After\");\n const reset = headers.get(\"Gitverse-Ratelimit-Reset\");\n\n if (!(limit && remaining && retryAfter && reset)) {\n return;\n }\n\n return {\n limit: Number.parseInt(limit, 10),\n remaining: Number.parseInt(remaining, 10),\n reset: Number.parseInt(reset, 10),\n retryAfter: Number.parseInt(retryAfter, 10),\n };\n }\n\n /**\n * Извлекает информацию о версии API из заголовков ответа\n */\n private extractApiVersionInfo(headers: Headers): ApiVersionInfo | undefined {\n const version = headers.get(\"Gitverse-Api-Version\");\n const latestVersion = headers.get(\"Gitverse-Api-Latest-Version\");\n const deprecated = headers.get(\"Gitverse-Api-Deprecation\") === \"true\";\n const decommissioning = headers.get(\"Gitverse-Api-Decommissioning\");\n\n if (!(version && latestVersion)) {\n return;\n }\n\n return {\n decommissioning: decommissioning || undefined,\n deprecated,\n latestVersion,\n version,\n };\n }\n\n /**\n * Извлекает метаданные из заголовков ответа\n */\n private extractMetadata(headers: Headers): ApiResponseMetadata {\n const rateLimit = this.extractRateLimitInfo(headers);\n const apiVersion = this.extractApiVersionInfo(headers);\n\n // Проверяем устаревшую версию API и вызываем callback\n if (apiVersion?.deprecated && this.onApiVersionWarning) {\n const warning = new ApiVersionWarning(apiVersion.version, apiVersion.latestVersion, apiVersion.decommissioning);\n this.onApiVersionWarning(warning);\n }\n\n return {\n apiVersion,\n rateLimit,\n };\n }\n\n /**\n * Выполняет API-запрос с учетом авторизации и версии API\n * @param path Путь к API-ресурсу\n * @param method HTTP-метод\n * @param body Тело запроса (опционально)\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n * @throws {RateLimitError} При превышении лимита запросов (429)\n * @throws {GitVerseApiError} При других ошибках API\n */\n async request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T> {\n // Правильная конкатенация URL: убираем начальный / из path если он есть\n const cleanPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const url = `${this.baseUrl}/${cleanPath}`;\n\n const headers = new Headers();\n\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"Accept\", `application/vnd.gitverse.object+json; version=${this.apiVersion}`);\n\n if (this.token) {\n headers.set(\"Authorization\", `Bearer ${this.token}`);\n }\n\n const fetchOptions: RequestInit = {\n body: body ? JSON.stringify(body) : undefined,\n headers,\n method,\n signal: options?.signal,\n };\n\n const response = await fetch(url, fetchOptions);\n\n // Извлекаем метаданные из заголовков\n const metadata = this.extractMetadata(response.headers);\n\n let data: unknown;\n try {\n data = await response.json();\n } catch {\n data = undefined;\n }\n\n if (!response.ok) {\n const error = data as ApiError | undefined;\n const errorMessage = error?.message || response.statusText;\n\n // Обработка ошибки превышения лимита запросов\n if (response.status === 429 && metadata.rateLimit) {\n throw new RateLimitError(\n errorMessage || \"Превышен лимит запросов. Попробуйте позже.\",\n metadata.rateLimit,\n metadata,\n );\n }\n\n // Общая ошибка API\n throw new GitVerseApiError(response.status, errorMessage, metadata);\n }\n\n return data as T;\n }\n\n /**\n * Выполняет GET-запрос\n * @param path Путь к API-ресурсу\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n */\n get<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, HTTPMethods.GET, undefined, options);\n }\n\n /**\n * Выполняет POST-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n */\n post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, HTTPMethods.POST, body, options);\n }\n\n /**\n * Выполняет PUT-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n */\n put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, HTTPMethods.PUT, body, options);\n }\n\n /**\n * Выполняет DELETE-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса (опционально)\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n */\n delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, HTTPMethods.DELETE, body, options);\n }\n\n /**\n * Выполняет PATCH-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @param options Опции запроса (опционально)\n * @returns Ответ от API\n */\n patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T> {\n return this.request<T>(path, HTTPMethods.PATCH, body, options);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "8CAEO,IAAM,EAAc,CACzB,OAAQ,SACR,IAAK,MACL,MAAO,QACP,KAAM,OACN,IAAK,KACP,EA6BO,MAAM,CAAe,CAClB,QACA,MACA,WAKD,oBAMP,WAAW,CAAC,EAA+B,CAAC,EAAG,CAC7C,KAAK,QAAU,EAAO,SAAW,0BACjC,KAAK,MAAQ,EAAO,MACpB,KAAK,WAAa,EAAO,YAAc,IAOzC,QAAQ,CAAC,EAAqB,CAC5B,KAAK,MAAQ,EAMP,oBAAoB,CAAC,EAA6C,CACxE,IAAM,EAAQ,EAAQ,IAAI,0BAA0B,EAC9C,EAAY,EAAQ,IAAI,8BAA8B,EACtD,EAAa,EAAQ,IAAI,gCAAgC,EACzD,EAAQ,EAAQ,IAAI,0BAA0B,EAEpD,GAAI,EAAE,GAAS,GAAa,GAAc,GACxC,OAGF,MAAO,CACL,MAAO,OAAO,SAAS,EAAO,EAAE,EAChC,UAAW,OAAO,SAAS,EAAW,EAAE,EACxC,MAAO,OAAO,SAAS,EAAO,EAAE,EAChC,WAAY,OAAO,SAAS,EAAY,EAAE,CAC5C,EAMM,qBAAqB,CAAC,EAA8C,CAC1E,IAAM,EAAU,EAAQ,IAAI,sBAAsB,EAC5C,EAAgB,EAAQ,IAAI,6BAA6B,EACzD,EAAa,EAAQ,IAAI,0BAA0B,IAAM,OACzD,EAAkB,EAAQ,IAAI,8BAA8B,EAElE,GAAI,EAAE,GAAW,GACf,OAGF,MAAO,CACL,gBAAiB,GAAmB,OACpC,aACA,gBACA,SACF,EAMM,eAAe,CAAC,EAAuC,CAC7D,IAAM,EAAY,KAAK,qBAAqB,CAAO,EAC7C,EAAa,KAAK,sBAAsB,CAAO,EAGrD,GAAI,GAAY,YAAc,KAAK,oBAAqB,CACtD,IAAM,EAAU,IAAI,EAAkB,EAAW,QAAS,EAAW,cAAe,EAAW,eAAe,EAC9G,KAAK,oBAAoB,CAAO,EAGlC,MAAO,CACL,aACA,WACF,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "DC7520293936FD5864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|