gitverse-api-sdk 1.0.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.
Files changed (68) hide show
  1. package/README.md +328 -114
  2. package/dist/api/actions.d.ts +506 -0
  3. package/dist/api/actions.js +4 -0
  4. package/dist/api/actions.js.map +10 -0
  5. package/dist/api/branches.d.ts +154 -0
  6. package/dist/api/branches.js +4 -0
  7. package/dist/api/branches.js.map +10 -0
  8. package/dist/api/collaborators.d.ts +224 -0
  9. package/dist/api/collaborators.js +4 -0
  10. package/dist/api/collaborators.js.map +10 -0
  11. package/dist/api/commits.d.ts +302 -0
  12. package/dist/api/commits.js +4 -0
  13. package/dist/api/commits.js.map +10 -0
  14. package/dist/api/contents.d.ts +345 -0
  15. package/dist/api/contents.js +4 -0
  16. package/dist/api/contents.js.map +10 -0
  17. package/dist/api/emails.d.ts +184 -0
  18. package/dist/api/emails.js +4 -0
  19. package/dist/api/emails.js.map +10 -0
  20. package/dist/api/forks.d.ts +325 -0
  21. package/dist/api/forks.js +4 -0
  22. package/dist/api/forks.js.map +10 -0
  23. package/dist/api/git.d.ts +228 -0
  24. package/dist/api/git.js +4 -0
  25. package/dist/api/git.js.map +10 -0
  26. package/dist/api/issues.d.ts +380 -0
  27. package/dist/api/issues.js +4 -0
  28. package/dist/api/issues.js.map +10 -0
  29. package/dist/api/organizations.d.ts +140 -0
  30. package/dist/api/organizations.js +4 -0
  31. package/dist/api/organizations.js.map +10 -0
  32. package/dist/api/pulls.d.ts +517 -0
  33. package/dist/api/pulls.js +4 -0
  34. package/dist/api/pulls.js.map +10 -0
  35. package/dist/api/releases.d.ts +400 -0
  36. package/dist/api/releases.js +4 -0
  37. package/dist/api/releases.js.map +10 -0
  38. package/dist/api/repositories.d.ts +502 -0
  39. package/dist/api/repositories.js +4 -0
  40. package/dist/api/repositories.js.map +10 -0
  41. package/dist/api/stars.d.ts +328 -0
  42. package/dist/api/stars.js +4 -0
  43. package/dist/api/stars.js.map +10 -0
  44. package/dist/api/teams.d.ts +287 -0
  45. package/dist/api/teams.js +4 -0
  46. package/dist/api/teams.js.map +10 -0
  47. package/dist/api/users.d.ts +244 -0
  48. package/dist/api/users.js +4 -0
  49. package/dist/api/users.js.map +10 -0
  50. package/dist/client.d.ts +122 -0
  51. package/dist/client.js +4 -0
  52. package/dist/client.js.map +10 -0
  53. package/dist/enums.d.ts +57 -0
  54. package/dist/enums.js +4 -0
  55. package/dist/enums.js.map +10 -0
  56. package/dist/errors.d.ts +78 -0
  57. package/dist/errors.js +4 -0
  58. package/dist/errors.js.map +10 -0
  59. package/dist/index.d.ts +1801 -453
  60. package/dist/index.js +3 -1
  61. package/dist/index.js.map +10 -0
  62. package/dist/types.d.ts +1256 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +9 -0
  65. package/dist/utils.d.ts +39 -0
  66. package/dist/utils.js +3 -0
  67. package/dist/utils.js.map +10 -0
  68. package/package.json +99 -7
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Типы пользователей в системе
3
+ */
4
+ declare const UserType: {
5
+ readonly Organization: "Organization"
6
+ readonly User: "User"
7
+ };
8
+ /**
9
+ * Тип для типов пользователей
10
+ */
11
+ type UserType = (typeof UserType)[keyof typeof UserType];
12
+ /**
13
+ * Типы видимости для репозиториев и пользователей
14
+ */
15
+ declare const VisibilityType: {
16
+ readonly Limited: "limited"
17
+ readonly Private: "private"
18
+ readonly Public: "public"
19
+ };
20
+ /**
21
+ * Тип для типов видимости
22
+ */
23
+ type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
24
+ /**
25
+ * Интерфейс пользователя
26
+ */
27
+ interface User2 {
28
+ /** Уникальный идентификатор пользователя */
29
+ id: number;
30
+ /** Имя пользователя */
31
+ name?: string;
32
+ /** Логин пользователя */
33
+ login: string;
34
+ /** Полное имя пользователя */
35
+ full_name?: string;
36
+ /** Тип аккаунта: пользователь или организация */
37
+ type: UserType;
38
+ /** Биография пользователя */
39
+ bio?: string;
40
+ /** Электронная почта пользователя */
41
+ email?: string;
42
+ /** URL аватара пользователя */
43
+ avatar_url: string;
44
+ /** Веб-ссылка на профиль пользователя */
45
+ html_url: string;
46
+ /** API-ссылка на профиль пользователя */
47
+ url?: string;
48
+ /** API-ссылка на список подписчиков пользователя */
49
+ followers_url?: string;
50
+ /** API-ссылка на репозитории пользователя */
51
+ repos_url?: string;
52
+ /** API-ссылка на организации пользователя */
53
+ organizations_url?: string;
54
+ /** Права администратора */
55
+ site_admin: boolean;
56
+ /** Местоположение пользователя */
57
+ location?: string;
58
+ /** Верификация аккаунта */
59
+ is_verified?: boolean;
60
+ /** Настройки приватности профиля */
61
+ visibility?: VisibilityType;
62
+ /** Персональный веб-сайт */
63
+ website?: string;
64
+ /** Количество подписчиков */
65
+ followers?: number;
66
+ /** Количество подписок */
67
+ following?: number;
68
+ /** Количество публичных репозиториев */
69
+ public_repos?: number;
70
+ /** Количество репозиториев, отмеченных звездой */
71
+ stars_count?: number;
72
+ /** Дата создания аккаунта */
73
+ created_at: string;
74
+ /** Дата последнего обновления аккаунта */
75
+ updated_at?: string;
76
+ }
77
+ /**
78
+ * Интерфейс репозитория
79
+ */
80
+ interface Repository {
81
+ /** Уникальный идентификатор репозитория */
82
+ id: number;
83
+ /** Информация о владельце репозитория */
84
+ owner: User2;
85
+ /** Название репозитория */
86
+ name: string;
87
+ /** Полное название репозитория в формате {owner}/{repo} */
88
+ full_name: string;
89
+ /** Описание репозитория */
90
+ description?: string;
91
+ /** Список тем, связанных с репозиторием */
92
+ topics?: string[] | null;
93
+ /** Является ли репозиторий приватным */
94
+ private: boolean;
95
+ /** Является ли репозиторий форком другого репозитория */
96
+ fork: boolean;
97
+ /** Информация о родительском репозитории (если это форк) */
98
+ parent?: Repository | null;
99
+ /** Размер репозитория в килобайтах */
100
+ size: number;
101
+ /** Основной язык программирования, используемый в репозитории */
102
+ language?: string;
103
+ /** SSH-URL для клонирования репозитория */
104
+ ssh_url: string;
105
+ /** HTTPS-URL для клонирования репозитория */
106
+ clone_url: string;
107
+ /** Веб-ссылка на репозиторий */
108
+ html_url: string;
109
+ /** API-ссылка на репозиторий */
110
+ url: string;
111
+ /** Git-URL для клонирования репозитория */
112
+ git_url: string;
113
+ /** Зеркало репозитория (если доступно) */
114
+ mirror_url?: string;
115
+ /** Ссылка на вебсайт проекта */
116
+ website?: string;
117
+ /** Альтернативная ссылка на домашнюю страницу проекта */
118
+ homepage?: string;
119
+ /** Количество звезд у репозитория */
120
+ stargazers_count: number;
121
+ /** Количество форков репозитория */
122
+ forks: number;
123
+ /** Количество форков репозитория (дублирует поле forks) */
124
+ forks_count: number;
125
+ /** Количество наблюдателей за репозиторием */
126
+ watchers: number;
127
+ /** Количество наблюдателей за репозиторием (дублирует поле watchers) */
128
+ watchers_count: number;
129
+ /** Количество репозиториев в сети (форков и оригинала) */
130
+ network_count: number;
131
+ /** Количество подписчиков на уведомления о репозитории */
132
+ subscribers_count: number;
133
+ /** Количество открытых задач (issues) в репозитории */
134
+ open_issues: number;
135
+ /** Количество открытых задач (дублирует поле open_issues) */
136
+ open_issues_count: number;
137
+ /** Количество открытых pull requests */
138
+ open_pr_counter: number;
139
+ /** Основная ветка репозитория */
140
+ default_branch: string;
141
+ /** Архивирован ли репозиторий */
142
+ archived: boolean;
143
+ /** Разрешено ли создание задач (issues) */
144
+ has_issues: boolean;
145
+ /** Разрешено ли использование проектов */
146
+ has_projects: boolean;
147
+ /** Разрешено ли использование обсуждений */
148
+ has_discussions: boolean;
149
+ /** Разрешено ли использование wiki */
150
+ has_wiki: boolean;
151
+ /** Разрешено ли использование GitHub Pages */
152
+ has_pages: boolean;
153
+ /** Отключен ли репозиторий */
154
+ disabled: boolean;
155
+ /** Настройки приватности репозитория */
156
+ visibility: VisibilityType;
157
+ /** Является ли репозиторий шаблоном */
158
+ is_template: boolean;
159
+ /** Информация о шаблоне репозитория (если доступно) */
160
+ template_repository?: Repository | null;
161
+ /** Разрешены ли слияния через merge commits */
162
+ allow_merge_commits: boolean;
163
+ /** Разрешены ли слияния через squash commits */
164
+ allow_squash_merge: boolean;
165
+ /** Удалять ли ветку после слияния по умолчанию */
166
+ default_delete_branch_after_merge: boolean;
167
+ /** Дата создания репозитория */
168
+ created_at: string;
169
+ /** Дата последнего обновления репозитория */
170
+ updated_at: string;
171
+ /** Дата последнего push-события в репозиторий */
172
+ pushed_at: string;
173
+ }
174
+ /**
175
+ * Предупреждение об устаревшей версии API
176
+ */
177
+ declare class ApiVersionWarning {
178
+ /** Текущая используемая версия */
179
+ readonly currentVersion: string;
180
+ /** Последняя доступная версия */
181
+ readonly latestVersion: string;
182
+ /** Дата вывода из эксплуатации */
183
+ readonly decommissioning?: string;
184
+ constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
185
+ /**
186
+ * Возвращает сообщение о предупреждении
187
+ */
188
+ getMessage(): string;
189
+ }
190
+ declare const HTTPMethods: {
191
+ readonly DELETE: "DELETE"
192
+ readonly GET: "GET"
193
+ readonly PATCH: "PATCH"
194
+ readonly POST: "POST"
195
+ readonly PUT: "PUT"
196
+ };
197
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
198
+ /**
199
+ * Параметры для конфигурации GitVerse клиента
200
+ */
201
+ interface GitVerseClientConfig {
202
+ /**
203
+ * Базовый URL API GitVerse
204
+ * @default 'https://api.gitverse.ru'
205
+ */
206
+ baseUrl?: string;
207
+ /**
208
+ * Токен доступа для авторизации в API
209
+ */
210
+ token?: string;
211
+ /**
212
+ * Версия API
213
+ * @default '1'
214
+ */
215
+ apiVersion?: string;
216
+ }
217
+ /**
218
+ * Основной класс для работы с GitVerse API
219
+ */
220
+ declare class GitVerseClient {
221
+ private baseUrl;
222
+ private token?;
223
+ private apiVersion;
224
+ /**
225
+ * Callback для обработки предупреждений об устаревшей версии API
226
+ */
227
+ onApiVersionWarning?: (warning: ApiVersionWarning) => void;
228
+ /**
229
+ * Создает новый экземпляр GitVerse клиента
230
+ * @param config Конфигурация клиента
231
+ */
232
+ constructor(config?: GitVerseClientConfig);
233
+ /**
234
+ * Устанавливает токен авторизации
235
+ * @param token Токен доступа
236
+ */
237
+ setToken(token: string): void;
238
+ /**
239
+ * Извлекает информацию о Rate Limit из заголовков ответа
240
+ */
241
+ private extractRateLimitInfo;
242
+ /**
243
+ * Извлекает информацию о версии API из заголовков ответа
244
+ */
245
+ private extractApiVersionInfo;
246
+ /**
247
+ * Извлекает метаданные из заголовков ответа
248
+ */
249
+ private extractMetadata;
250
+ /**
251
+ * Выполняет API-запрос с учетом авторизации и версии API
252
+ * @param path Путь к API-ресурсу
253
+ * @param method HTTP-метод
254
+ * @param body Тело запроса (опционально)
255
+ * @returns Ответ от API
256
+ * @throws {RateLimitError} При превышении лимита запросов (429)
257
+ * @throws {GitVerseApiError} При других ошибках API
258
+ */
259
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
260
+ /**
261
+ * Выполняет GET-запрос
262
+ * @param path Путь к API-ресурсу
263
+ * @returns Ответ от API
264
+ */
265
+ get<T>(path: string): Promise<T>;
266
+ /**
267
+ * Выполняет POST-запрос
268
+ * @param path Путь к API-ресурсу
269
+ * @param body Тело запроса
270
+ * @returns Ответ от API
271
+ */
272
+ post<T>(path: string, body?: unknown): Promise<T>;
273
+ /**
274
+ * Выполняет PUT-запрос
275
+ * @param path Путь к API-ресурсу
276
+ * @param body Тело запроса
277
+ * @returns Ответ от API
278
+ */
279
+ put<T>(path: string, body?: unknown): Promise<T>;
280
+ /**
281
+ * Выполняет DELETE-запрос
282
+ * @param path Путь к API-ресурсу
283
+ * @param body Тело запроса (опционально)
284
+ * @returns Ответ от API
285
+ */
286
+ delete<T>(path: string, body?: unknown): Promise<T>;
287
+ /**
288
+ * Выполняет PATCH-запрос
289
+ * @param path Путь к API-ресурсу
290
+ * @param body Тело запроса
291
+ * @returns Ответ от API
292
+ */
293
+ patch<T>(path: string, body?: unknown): Promise<T>;
294
+ }
295
+ /**
296
+ * Класс для работы со звездами репозиториев
297
+ */
298
+ declare class StarsApi {
299
+ private client;
300
+ constructor(client: GitVerseClient);
301
+ /**
302
+ * Получить список репозиториев, отмеченных звездой
303
+ * @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой
304
+ */
305
+ list(): Promise<Repository[]>;
306
+ /**
307
+ * Добавить звезду репозиторию
308
+ * @param {string} owner - Владелец репозитория
309
+ * @param {string} repo - Название репозитория
310
+ * @returns {Promise<void>} Результат операции (204 No Content при успехе)
311
+ */
312
+ add(owner: string, repo: string): Promise<void>;
313
+ /**
314
+ * Проверить, отмечен ли репозиторий звездой
315
+ * @param {string} owner - Владелец репозитория
316
+ * @param {string} repo - Название репозитория
317
+ * @returns {Promise<boolean>} true если отмечен звездой, false если нет
318
+ */
319
+ check(owner: string, repo: string): Promise<boolean>;
320
+ /**
321
+ * Убрать звезду с репозитория
322
+ * @param {string} owner - Владелец репозитория
323
+ * @param {string} repo - Название репозитория
324
+ * @returns {Promise<void>} Результат операции
325
+ */
326
+ remove(owner: string, repo: string): Promise<void>;
327
+ }
328
+ export { StarsApi };
@@ -0,0 +1,4 @@
1
+ import{u as h}from"../errors.js";class j{client;constructor(b){this.client=b}list(){return this.client.get("/user/starred")}async add(b,c){await this.client.put(`/user/starred/${b}/${c}`)}async check(b,c){try{return await this.client.get(`/user/starred/${b}/${c}`),!0}catch(f){if(f instanceof h&&f.status===404)return!1;throw f}}async remove(b,c){await this.client.delete(`/user/starred/${b}/${c}`)}}export{j as StarsApi};
2
+ export{j as d};
3
+
4
+ //# debugId=957D1B7B77093AA464756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/api/stars.ts"],
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}`);\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): Promise<boolean> {\n try {\n await this.client.get<void>(`/user/starred/${owner}/${repo}`);\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): Promise<void> {\n await this.client.delete<void>(`/user/starred/${owner}/${repo}`);\n }\n}\n"
6
+ ],
7
+ "mappings": "iCAOO,MAAM,CAAS,CACA,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,EAA0B,CAC5B,OAAO,KAAK,OAAO,IAAkB,eAAe,OAShD,IAAG,CAAC,EAAe,EAA6B,CACpD,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,GAAM,OASxD,MAAK,CAAC,EAAe,EAAgC,CACzD,GAAI,CAEF,OADA,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,GAAM,EACrD,GACP,MAAO,EAAgB,CAEvB,GAAI,aAAiB,GAAoB,EAAM,SAAW,IACxD,MAAO,GAET,MAAM,QAUJ,OAAM,CAAC,EAAe,EAA6B,CACvD,MAAM,KAAK,OAAO,OAAa,iBAAiB,KAAS,GAAM,EAEnE",
8
+ "debugId": "957D1B7B77093AA464756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Типы пользователей в системе
3
+ */
4
+ declare const UserType: {
5
+ readonly Organization: "Organization"
6
+ readonly User: "User"
7
+ };
8
+ /**
9
+ * Тип для типов пользователей
10
+ */
11
+ type UserType = (typeof UserType)[keyof typeof UserType];
12
+ /**
13
+ * Типы видимости для репозиториев и пользователей
14
+ */
15
+ declare const VisibilityType: {
16
+ readonly Limited: "limited"
17
+ readonly Private: "private"
18
+ readonly Public: "public"
19
+ };
20
+ /**
21
+ * Тип для типов видимости
22
+ */
23
+ type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
24
+ /**
25
+ * Интерфейс пользователя
26
+ */
27
+ interface User2 {
28
+ /** Уникальный идентификатор пользователя */
29
+ id: number;
30
+ /** Имя пользователя */
31
+ name?: string;
32
+ /** Логин пользователя */
33
+ login: string;
34
+ /** Полное имя пользователя */
35
+ full_name?: string;
36
+ /** Тип аккаунта: пользователь или организация */
37
+ type: UserType;
38
+ /** Биография пользователя */
39
+ bio?: string;
40
+ /** Электронная почта пользователя */
41
+ email?: string;
42
+ /** URL аватара пользователя */
43
+ avatar_url: string;
44
+ /** Веб-ссылка на профиль пользователя */
45
+ html_url: string;
46
+ /** API-ссылка на профиль пользователя */
47
+ url?: string;
48
+ /** API-ссылка на список подписчиков пользователя */
49
+ followers_url?: string;
50
+ /** API-ссылка на репозитории пользователя */
51
+ repos_url?: string;
52
+ /** API-ссылка на организации пользователя */
53
+ organizations_url?: string;
54
+ /** Права администратора */
55
+ site_admin: boolean;
56
+ /** Местоположение пользователя */
57
+ location?: string;
58
+ /** Верификация аккаунта */
59
+ is_verified?: boolean;
60
+ /** Настройки приватности профиля */
61
+ visibility?: VisibilityType;
62
+ /** Персональный веб-сайт */
63
+ website?: string;
64
+ /** Количество подписчиков */
65
+ followers?: number;
66
+ /** Количество подписок */
67
+ following?: number;
68
+ /** Количество публичных репозиториев */
69
+ public_repos?: number;
70
+ /** Количество репозиториев, отмеченных звездой */
71
+ stars_count?: number;
72
+ /** Дата создания аккаунта */
73
+ created_at: string;
74
+ /** Дата последнего обновления аккаунта */
75
+ updated_at?: string;
76
+ }
77
+ /**
78
+ * Интерфейс команды (team)
79
+ */
80
+ interface Team {
81
+ /** Идентификатор команды */
82
+ id: number;
83
+ /** Node ID команды */
84
+ node_id?: string;
85
+ /** Название команды */
86
+ name: string;
87
+ /** Slug команды */
88
+ slug: string;
89
+ /** Описание команды */
90
+ description?: string;
91
+ /** Приватность команды */
92
+ privacy?: "secret" | "closed";
93
+ /** Права доступа */
94
+ permission: "pull" | "push" | "admin";
95
+ /** Количество участников */
96
+ members_count?: number;
97
+ /** Количество репозиториев */
98
+ repos_count?: number;
99
+ /** Организация */
100
+ organization?: {
101
+ login: string
102
+ id: number
103
+ };
104
+ /** Веб-ссылка */
105
+ html_url: string;
106
+ /** API-ссылка */
107
+ url: string;
108
+ }
109
+ /**
110
+ * Интерфейс приглашения в команду
111
+ */
112
+ interface Invitation {
113
+ /** Идентификатор приглашения */
114
+ id: number;
115
+ /** Приглашённый пользователь */
116
+ login: string;
117
+ /** Email приглашённого */
118
+ email?: string;
119
+ /** Роль */
120
+ role: string;
121
+ /** Дата создания */
122
+ created_at: string;
123
+ /** Приглашающий */
124
+ inviter: User2;
125
+ }
126
+ /**
127
+ * Предупреждение об устаревшей версии API
128
+ */
129
+ declare class ApiVersionWarning {
130
+ /** Текущая используемая версия */
131
+ readonly currentVersion: string;
132
+ /** Последняя доступная версия */
133
+ readonly latestVersion: string;
134
+ /** Дата вывода из эксплуатации */
135
+ readonly decommissioning?: string;
136
+ constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
137
+ /**
138
+ * Возвращает сообщение о предупреждении
139
+ */
140
+ getMessage(): string;
141
+ }
142
+ declare const HTTPMethods: {
143
+ readonly DELETE: "DELETE"
144
+ readonly GET: "GET"
145
+ readonly PATCH: "PATCH"
146
+ readonly POST: "POST"
147
+ readonly PUT: "PUT"
148
+ };
149
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
150
+ /**
151
+ * Параметры для конфигурации GitVerse клиента
152
+ */
153
+ interface GitVerseClientConfig {
154
+ /**
155
+ * Базовый URL API GitVerse
156
+ * @default 'https://api.gitverse.ru'
157
+ */
158
+ baseUrl?: string;
159
+ /**
160
+ * Токен доступа для авторизации в API
161
+ */
162
+ token?: string;
163
+ /**
164
+ * Версия API
165
+ * @default '1'
166
+ */
167
+ apiVersion?: string;
168
+ }
169
+ /**
170
+ * Основной класс для работы с GitVerse API
171
+ */
172
+ declare class GitVerseClient {
173
+ private baseUrl;
174
+ private token?;
175
+ private apiVersion;
176
+ /**
177
+ * Callback для обработки предупреждений об устаревшей версии API
178
+ */
179
+ onApiVersionWarning?: (warning: ApiVersionWarning) => void;
180
+ /**
181
+ * Создает новый экземпляр GitVerse клиента
182
+ * @param config Конфигурация клиента
183
+ */
184
+ constructor(config?: GitVerseClientConfig);
185
+ /**
186
+ * Устанавливает токен авторизации
187
+ * @param token Токен доступа
188
+ */
189
+ setToken(token: string): void;
190
+ /**
191
+ * Извлекает информацию о Rate Limit из заголовков ответа
192
+ */
193
+ private extractRateLimitInfo;
194
+ /**
195
+ * Извлекает информацию о версии API из заголовков ответа
196
+ */
197
+ private extractApiVersionInfo;
198
+ /**
199
+ * Извлекает метаданные из заголовков ответа
200
+ */
201
+ private extractMetadata;
202
+ /**
203
+ * Выполняет API-запрос с учетом авторизации и версии API
204
+ * @param path Путь к API-ресурсу
205
+ * @param method HTTP-метод
206
+ * @param body Тело запроса (опционально)
207
+ * @returns Ответ от API
208
+ * @throws {RateLimitError} При превышении лимита запросов (429)
209
+ * @throws {GitVerseApiError} При других ошибках API
210
+ */
211
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
212
+ /**
213
+ * Выполняет GET-запрос
214
+ * @param path Путь к API-ресурсу
215
+ * @returns Ответ от API
216
+ */
217
+ get<T>(path: string): Promise<T>;
218
+ /**
219
+ * Выполняет POST-запрос
220
+ * @param path Путь к API-ресурсу
221
+ * @param body Тело запроса
222
+ * @returns Ответ от API
223
+ */
224
+ post<T>(path: string, body?: unknown): Promise<T>;
225
+ /**
226
+ * Выполняет PUT-запрос
227
+ * @param path Путь к API-ресурсу
228
+ * @param body Тело запроса
229
+ * @returns Ответ от API
230
+ */
231
+ put<T>(path: string, body?: unknown): Promise<T>;
232
+ /**
233
+ * Выполняет DELETE-запрос
234
+ * @param path Путь к API-ресурсу
235
+ * @param body Тело запроса (опционально)
236
+ * @returns Ответ от API
237
+ */
238
+ delete<T>(path: string, body?: unknown): Promise<T>;
239
+ /**
240
+ * Выполняет PATCH-запрос
241
+ * @param path Путь к API-ресурсу
242
+ * @param body Тело запроса
243
+ * @returns Ответ от API
244
+ */
245
+ patch<T>(path: string, body?: unknown): Promise<T>;
246
+ }
247
+ /**
248
+ * API для работы с командами организации
249
+ */
250
+ declare class TeamsApi {
251
+ private client;
252
+ /**
253
+ * Создает новый экземпляр API для работы с командами
254
+ * @param client GitVerse клиент
255
+ */
256
+ constructor(client: GitVerseClient);
257
+ /**
258
+ * Получает список команд организации
259
+ * @param org Название организации
260
+ * @returns Список команд
261
+ */
262
+ list(org: string): Promise<Team[]>;
263
+ /**
264
+ * Получает список приглашений команды
265
+ * @param org Название организации
266
+ * @param team Название команды
267
+ * @returns Список приглашений
268
+ */
269
+ getInvitations(org: string, team: string): Promise<Invitation[]>;
270
+ /**
271
+ * Получает список членов команды
272
+ * @param org Название организации
273
+ * @param team Название команды
274
+ * @returns Список членов команды
275
+ */
276
+ getMembers(org: string, team: string): Promise<User2[]>;
277
+ /**
278
+ * Добавляет репозиторий к команде
279
+ * @param org Название организации
280
+ * @param team Название команды
281
+ * @param owner Владелец репозитория
282
+ * @param repo Название репозитория
283
+ * @returns Результат операции
284
+ */
285
+ addRepository(org: string, team: string, owner: string, repo: string): Promise<void>;
286
+ }
287
+ export { TeamsApi };
@@ -0,0 +1,4 @@
1
+ class j{client;constructor(b){this.client=b}list(b){return this.client.get(`/orgs/${b}/teams`)}getInvitations(b,d){return this.client.get(`/orgs/${b}/teams/${d}/invitations`)}getMembers(b,d){return this.client.get(`/orgs/${b}/teams/${d}/members`)}addRepository(b,d,f,h){return this.client.put(`/orgs/${b}/teams/${d}/repos/${f}/${h}`,{})}}export{j as TeamsApi};
2
+ export{j};
3
+
4
+ //# debugId=3ECAF54B3CA1F91764756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/api/teams.ts"],
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`);\n }\n\n /**\n * Получает список приглашений команды\n * @param org Название организации\n * @param team Название команды\n * @returns Список приглашений\n */\n getInvitations(org: string, team: string): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(`/orgs/${org}/teams/${team}/invitations`);\n }\n\n /**\n * Получает список членов команды\n * @param org Название организации\n * @param team Название команды\n * @returns Список членов команды\n */\n getMembers(org: string, team: string): Promise<User[]> {\n return this.client.get<User[]>(`/orgs/${org}/teams/${team}/members`);\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): Promise<void> {\n return this.client.put<void>(`/orgs/${org}/teams/${team}/repos/${owner}/${repo}`, {});\n }\n}\n"
6
+ ],
7
+ "mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAQhB,IAAI,CAAC,EAA8B,CACjC,OAAO,KAAK,OAAO,IAAY,SAAS,SAAW,EASrD,cAAc,CAAC,EAAa,EAAqC,CAC/D,OAAO,KAAK,OAAO,IAAkB,SAAS,WAAa,eAAkB,EAS/E,UAAU,CAAC,EAAa,EAA+B,CACrD,OAAO,KAAK,OAAO,IAAY,SAAS,WAAa,WAAc,EAWrE,aAAa,CAAC,EAAa,EAAc,EAAe,EAA6B,CACnF,OAAO,KAAK,OAAO,IAAU,SAAS,WAAa,WAAc,KAAS,IAAQ,CAAC,CAAC,EAExF",
8
+ "debugId": "3ECAF54B3CA1F91764756E2164756E21",
9
+ "names": []
10
+ }