gitverse-api-sdk 5.0.0 → 5.1.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 (67) hide show
  1. package/README.md +1 -21
  2. package/dist/api/actions.d.ts +326 -378
  3. package/dist/api/actions.js +3 -3
  4. package/dist/api/actions.js.map +3 -3
  5. package/dist/api/emails.d.ts +41 -46
  6. package/dist/api/emails.js +3 -3
  7. package/dist/api/emails.js.map +3 -3
  8. package/dist/api/issues.d.ts +264 -391
  9. package/dist/api/issues.js +3 -3
  10. package/dist/api/issues.js.map +3 -3
  11. package/dist/api/organizations.d.ts +68 -7
  12. package/dist/api/organizations.js +3 -3
  13. package/dist/api/organizations.js.map +3 -3
  14. package/dist/api/{branches.d.ts → pages.d.ts} +35 -41
  15. package/dist/api/pages.js +4 -0
  16. package/dist/api/pages.js.map +10 -0
  17. package/dist/api/pulls.d.ts +309 -526
  18. package/dist/api/pulls.js +3 -3
  19. package/dist/api/pulls.js.map +3 -3
  20. package/dist/api/releases.d.ts +183 -244
  21. package/dist/api/releases.js +3 -3
  22. package/dist/api/releases.js.map +3 -3
  23. package/dist/api/repositories.d.ts +859 -395
  24. package/dist/api/repositories.js +3 -3
  25. package/dist/api/repositories.js.map +3 -3
  26. package/dist/api/stars.d.ts +95 -231
  27. package/dist/api/stars.js +3 -3
  28. package/dist/api/stars.js.map +3 -3
  29. package/dist/api/teams.d.ts +96 -122
  30. package/dist/api/teams.js +3 -3
  31. package/dist/api/teams.js.map +3 -3
  32. package/dist/api/users.d.ts +78 -170
  33. package/dist/api/users.js +3 -3
  34. package/dist/api/users.js.map +3 -3
  35. package/dist/client.d.ts +4 -0
  36. package/dist/client.js +3 -3
  37. package/dist/client.js.map +1 -1
  38. package/dist/enums.d.ts +27 -71
  39. package/dist/enums.js +3 -3
  40. package/dist/enums.js.map +3 -3
  41. package/dist/errors.d.ts +12 -10
  42. package/dist/errors.js +2 -2
  43. package/dist/errors.js.map +1 -1
  44. package/dist/index.d.ts +1865 -2422
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +3 -3
  47. package/dist/types.d.ts +771 -1689
  48. package/dist/utils.js +1 -2
  49. package/dist/utils.js.map +1 -1
  50. package/package.json +1 -1
  51. package/dist/api/branches.js +0 -4
  52. package/dist/api/branches.js.map +0 -10
  53. package/dist/api/collaborators.d.ts +0 -440
  54. package/dist/api/collaborators.js +0 -4
  55. package/dist/api/collaborators.js.map +0 -10
  56. package/dist/api/commits.d.ts +0 -406
  57. package/dist/api/commits.js +0 -4
  58. package/dist/api/commits.js.map +0 -10
  59. package/dist/api/contents.d.ts +0 -389
  60. package/dist/api/contents.js +0 -4
  61. package/dist/api/contents.js.map +0 -10
  62. package/dist/api/forks.d.ts +0 -387
  63. package/dist/api/forks.js +0 -4
  64. package/dist/api/forks.js.map +0 -10
  65. package/dist/api/git.d.ts +0 -277
  66. package/dist/api/git.js +0 -4
  67. package/dist/api/git.js.map +0 -10
package/dist/utils.js CHANGED
@@ -1,4 +1,3 @@
1
1
  var y=/^[A-Za-z0-9+/=]+$/,z=/^([a-z][a-z0-9+.-]*:\/\/[^/]+)\/([a-z][a-z0-9+.-]*:\/\/.+)$/i;function w(j){return Buffer.from(j).toString("base64")}function A(j){return Buffer.from(j,"base64").toString("utf-8")}function G(j,k,q){return{branch:q,content:w(j),message:k}}function H(j,k,q,v){return{branch:v,content:w(j),message:q,sha:k}}function I(j){if(!j.content)return"";if(j.encoding==="base64"){let k=j.content;if(!y.test(k))return k;try{return A(k)}catch{return k}}return j.content}function E(j){if(!j)return j;let k=j.match(z);if(k?.[1]&&k?.[2]){let q=k[1],v=k[2];if(v.startsWith(q))return v}return j}function J(j){let k=["clone_url","html_url","url","git_url","mirror_url"],q={...j};for(let v of k)if(typeof q[v]==="string")q[v]=E(q[v]);return q}export{H as updateFileParams,I as parseFileContent,J as fixRepositoryUrls,E as fixDuplicatedUrl,w as encodeBase64,A as decodeBase64,G as createFileParams};
2
- export{J as B};
3
2
 
4
- //# debugId=7AF8EE52FE923EC064756E2164756E21
3
+ //# debugId=F5ACDA9B0DF3F93764756E2164756E21
package/dist/utils.js.map CHANGED
@@ -5,6 +5,6 @@
5
5
  "/**\n * Вспомогательные утилиты для работы с GitVerse API\n */\n\nconst base64Regex = /^[A-Za-z0-9+/=]+$/;\n\n/**\n * Regex для поиска дублированных доменов в URL\n * Паттерн: protocol://domain/protocol://something\n * Поддерживает любые протоколы: http, https, git, ssh и т.д.\n */\nconst urlDuplicationPattern = /^([a-z][a-z0-9+.-]*:\\/\\/[^/]+)\\/([a-z][a-z0-9+.-]*:\\/\\/.+)$/i;\n\n/**\n * Кодирует строку в Base64\n * @param str Строка для кодирования\n * @returns Строка в формате Base64\n */\nexport function encodeBase64(str: string): string {\n return Buffer.from(str).toString(\"base64\");\n}\n\n/**\n * Декодирует строку из Base64\n * @param base64 Строка в формате Base64\n * @returns Декодированная строка\n */\nexport function decodeBase64(base64: string): string {\n return Buffer.from(base64, \"base64\").toString(\"utf-8\");\n}\n\n/**\n * Создает объект параметров для создания файла\n * @param content Содержимое файла в виде строки\n * @param message Сообщение коммита\n * @param branch Имя ветки (опционально)\n * @returns Объект параметров для создания файла\n */\nexport function createFileParams(content: string, message?: string, branch?: string) {\n return {\n branch,\n content: encodeBase64(content),\n message,\n };\n}\n\n/**\n * Создает объект параметров для обновления файла\n * @param content Новое содержимое файла в виде строки\n * @param sha SHA хеш текущего содержимого файла\n * @param message Сообщение коммита\n * @param branch Имя ветки (опционально)\n * @returns Объект параметров для обновления файла\n */\nexport function updateFileParams(content: string, sha: string, message?: string, branch?: string) {\n return {\n branch,\n content: encodeBase64(content),\n message,\n sha,\n };\n}\n\n/**\n * Парсит содержимое файла из ответа API\n * @param fileContent Объект с информацией о файле\n * @returns Декодированное содержимое файла\n */\nexport function parseFileContent(fileContent: { content?: string; encoding?: string }) {\n if (!fileContent.content) {\n return \"\";\n }\n\n if (fileContent.encoding === \"base64\") {\n const data = fileContent.content;\n // Return original if not valid base64\n if (!base64Regex.test(data)) {\n return data;\n }\n try {\n return decodeBase64(data);\n } catch {\n return data;\n }\n }\n\n return fileContent.content;\n}\n\n/**\n * Исправляет дублированный домен в URL (workaround для бага GitVerse API)\n *\n * Проблема: API иногда возвращает URL вида:\n * `https://gitverse.ru/https://gitverse.ru/owner/repo.git`\n *\n * Эта функция исправляет такие URL на корректный вид:\n * `https://gitverse.ru/owner/repo.git`\n *\n * @param url URL для исправления\n * @returns Исправленный URL\n *\n * @see https://gitverse.ru/RainyPixel/gitverse-sdk/tasktracker/XXX - ссылка на issue об этом баге\n */\nexport function fixDuplicatedUrl(url: string): string {\n if (!url) {\n return url;\n }\n\n const match = url.match(urlDuplicationPattern);\n\n if (match?.[1] && match?.[2]) {\n const firstPart = match[1]; // https://gitverse.ru или git://gitverse.ru\n const secondPart = match[2]; // https://gitverse.ru/owner/repo.git или git://gitverse.ru/owner/repo.git\n\n // Проверяем, начинается ли вторая часть с того же домена\n if (secondPart.startsWith(firstPart)) {\n return secondPart;\n }\n }\n\n return url;\n}\n\n/**\n * Исправляет дублированные URL в объекте Repository (workaround для бага GitVerse API)\n *\n * Применяет fixDuplicatedUrl ко всем URL-полям репозитория:\n * - clone_url\n * - html_url\n * - url\n * - git_url\n * - mirror_url\n *\n * @param repo Объект репозитория\n * @returns Репозиторий с исправленными URL\n */\nexport function fixRepositoryUrls<T extends Record<string, unknown>>(repo: T): T {\n const urlFields = [\"clone_url\", \"html_url\", \"url\", \"git_url\", \"mirror_url\"];\n\n // Создаем новый объект с теми же свойствами\n const fixed: Record<string, unknown> = { ...repo };\n\n for (const field of urlFields) {\n if (typeof fixed[field] === \"string\") {\n fixed[field] = fixDuplicatedUrl(fixed[field] as string);\n }\n }\n\n return fixed as T;\n}\n"
6
6
  ],
7
7
  "mappings": "AAIA,IAAM,EAAc,oBAOd,EAAwB,+DAOvB,SAAS,CAAY,CAAC,EAAqB,CAChD,OAAO,OAAO,KAAK,CAAG,EAAE,SAAS,QAAQ,EAQpC,SAAS,CAAY,CAAC,EAAwB,CACnD,OAAO,OAAO,KAAK,EAAQ,QAAQ,EAAE,SAAS,OAAO,EAUhD,SAAS,CAAgB,CAAC,EAAiB,EAAkB,EAAiB,CACnF,MAAO,CACL,SACA,QAAS,EAAa,CAAO,EAC7B,SACF,EAWK,SAAS,CAAgB,CAAC,EAAiB,EAAa,EAAkB,EAAiB,CAChG,MAAO,CACL,SACA,QAAS,EAAa,CAAO,EAC7B,UACA,KACF,EAQK,SAAS,CAAgB,CAAC,EAAsD,CACrF,GAAI,CAAC,EAAY,QACf,MAAO,GAGT,GAAI,EAAY,WAAa,SAAU,CACrC,IAAM,EAAO,EAAY,QAEzB,GAAI,CAAC,EAAY,KAAK,CAAI,EACxB,OAAO,EAET,GAAI,CACF,OAAO,EAAa,CAAI,EACxB,KAAM,CACN,OAAO,GAIX,OAAO,EAAY,QAiBd,SAAS,CAAgB,CAAC,EAAqB,CACpD,GAAI,CAAC,EACH,OAAO,EAGT,IAAM,EAAQ,EAAI,MAAM,CAAqB,EAE7C,GAAI,IAAQ,IAAM,IAAQ,GAAI,CAC5B,IAAM,EAAY,EAAM,GAClB,EAAa,EAAM,GAGzB,GAAI,EAAW,WAAW,CAAS,EACjC,OAAO,EAIX,OAAO,EAgBF,SAAS,CAAoD,CAAC,EAAY,CAC/E,IAAM,EAAY,CAAC,YAAa,WAAY,MAAO,UAAW,YAAY,EAGpE,EAAiC,IAAK,CAAK,EAEjD,QAAW,KAAS,EAClB,GAAI,OAAO,EAAM,KAAW,SAC1B,EAAM,GAAS,EAAiB,EAAM,EAAgB,EAI1D,OAAO",
8
- "debugId": "7AF8EE52FE923EC064756E2164756E21",
8
+ "debugId": "F5ACDA9B0DF3F93764756E2164756E21",
9
9
  "names": []
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitverse-api-sdk",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "Полнофункциональный TypeScript SDK для GitVerse API с поддержкой всех эндпоинтов, обработкой Rate Limits и версионирования",
5
5
  "keywords": [
6
6
  "gitverse",
@@ -1,4 +0,0 @@
1
- class z{client;constructor(f){this.client=f}list(f,k,b,v){let d=new URLSearchParams;if(b?.q)d.append("q",b.q);if(b?.page)d.append("page",String(b.page));if(b?.per_page)d.append("per_page",String(b.per_page));let j=d.toString(),x=`/repos/${f}/${k}/branches${j?`?${j}`:""}`;return this.client.get(x,v)}}export{z as BranchesApi};
2
- export{z as b};
3
-
4
- //# debugId=E33184BCC55E6BBC64756E2164756E21
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/api/branches.ts"],
4
- "sourcesContent": [
5
- "import type { GitVerseClient } from \"../client\";\nimport type { Branch, ListBranchesParams, RequestOptions } from \"../types\";\n\n/**\n * API для работы с ветками репозитория\n */\nexport class BranchesApi {\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 owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры пагинации и фильтрации\n * @param options Опции запроса\n * @returns Список веток\n */\n list(owner: string, repo: string, params?: ListBranchesParams, options?: RequestOptions): Promise<Branch[]> {\n const searchParams = new URLSearchParams();\n if (params?.q) searchParams.append(\"q\", params.q);\n if (params?.page) searchParams.append(\"page\", String(params.page));\n if (params?.per_page) searchParams.append(\"per_page\", String(params.per_page));\n\n const queryString = searchParams.toString();\n const url = `/repos/${owner}/${repo}/branches${queryString ? `?${queryString}` : \"\"}`;\n\n return this.client.get<Branch[]>(url, options);\n }\n}\n"
6
- ],
7
- "mappings": "AAMO,MAAM,CAAY,CACf,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAWhB,IAAI,CAAC,EAAe,EAAc,EAA6B,EAA6C,CAC1G,IAAM,EAAe,IAAI,gBACzB,GAAI,GAAQ,EAAG,EAAa,OAAO,IAAK,EAAO,CAAC,EAChD,GAAI,GAAQ,KAAM,EAAa,OAAO,OAAQ,OAAO,EAAO,IAAI,CAAC,EACjE,GAAI,GAAQ,SAAU,EAAa,OAAO,WAAY,OAAO,EAAO,QAAQ,CAAC,EAE7E,IAAM,EAAc,EAAa,SAAS,EACpC,EAAM,UAAU,KAAS,aAAgB,EAAc,IAAI,IAAgB,KAEjF,OAAO,KAAK,OAAO,IAAc,EAAK,CAAO,EAEjD",
8
- "debugId": "E33184BCC55E6BBC64756E2164756E21",
9
- "names": []
10
- }
@@ -1,440 +0,0 @@
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
- * Опции для выполнения 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
- /**
38
- * Базовые параметры пагинации
39
- */
40
- interface PaginationParams {
41
- /** Номер страницы (начиная с 1) */
42
- page?: number;
43
- /** Количество элементов на странице */
44
- per_page?: number;
45
- }
46
- /**
47
- * Интерфейс пользователя
48
- */
49
- interface User2 {
50
- /** Уникальный идентификатор пользователя */
51
- id: number;
52
- /** Имя пользователя */
53
- name?: string;
54
- /** Логин пользователя */
55
- login: string;
56
- /** Полное имя пользователя */
57
- full_name?: string;
58
- /** Тип аккаунта: пользователь или организация */
59
- type: UserType;
60
- /** Биография пользователя */
61
- bio?: string;
62
- /** Электронная почта пользователя */
63
- email?: string;
64
- /** URL аватара пользователя */
65
- avatar_url: string;
66
- /** Веб-ссылка на профиль пользователя */
67
- html_url: string;
68
- /** API-ссылка на профиль пользователя */
69
- url?: string;
70
- /** API-ссылка на список подписчиков пользователя */
71
- followers_url?: string;
72
- /** API-ссылка на репозитории пользователя */
73
- repos_url?: string;
74
- /** API-ссылка на организации пользователя */
75
- organizations_url?: string;
76
- /** Права администратора */
77
- site_admin: boolean;
78
- /** Местоположение пользователя */
79
- location?: string;
80
- /** Верификация аккаунта */
81
- is_verified?: boolean;
82
- /** Настройки приватности профиля */
83
- visibility?: VisibilityType;
84
- /** Персональный веб-сайт */
85
- website?: string;
86
- /** Количество подписчиков */
87
- followers?: number;
88
- /** Количество подписок */
89
- following?: number;
90
- /** Количество публичных репозиториев */
91
- public_repos?: number;
92
- /** Количество репозиториев, отмеченных звездой */
93
- stars_count?: number;
94
- /** API-ссылка на подписки пользователя */
95
- following_url?: string;
96
- /** API-ссылка на избранные репозитории */
97
- starred_url?: string;
98
- /** API-ссылка на подписки на уведомления */
99
- subscriptions_url?: string;
100
- /** Дата создания аккаунта */
101
- created_at: string;
102
- /** Дата последнего обновления аккаунта */
103
- updated_at?: string;
104
- }
105
- /**
106
- * Параметры для получения списка коллабораторов
107
- */
108
- interface ListCollaboratorsParams extends PaginationParams {
109
- /** Фильтр по типу связи (direct, outside, all) */
110
- affiliation?: "direct" | "outside" | "all";
111
- /** Фильтр по уровню доступа */
112
- permission?: "read" | "write" | "admin";
113
- }
114
- /**
115
- * Параметры для добавления коллаборатора
116
- */
117
- interface AddCollaboratorParams {
118
- /** Уровень доступа коллаборатора */
119
- permission?: "read" | "write" | "admin";
120
- }
121
- /**
122
- * Коллаборатор репозитория (пользователь с правами доступа)
123
- */
124
- interface Collaborator extends User2 {
125
- /** Права доступа к репозиторию */
126
- permissions?: {
127
- admin: boolean
128
- push: boolean
129
- pull: boolean
130
- };
131
- }
132
- /**
133
- * Интерфейс приглашения коллаборатора
134
- */
135
- interface CollaboratorInvitation {
136
- /** Уникальный идентификатор приглашения */
137
- id: number;
138
- /** Дата создания приглашения */
139
- created_at: string;
140
- /** Приглашённый пользователь */
141
- invitee: User2;
142
- /** Пользователь, отправивший приглашение */
143
- inviter: User2;
144
- /** Уровень доступа */
145
- permissions: string;
146
- /** Репозиторий */
147
- repository: Repository;
148
- }
149
- /**
150
- * Права доступа к репозиторию
151
- */
152
- interface Permissions {
153
- /** Право администратора */
154
- admin: boolean;
155
- /** Право на запись */
156
- push: boolean;
157
- /** Право на чтение */
158
- pull: boolean;
159
- }
160
- /**
161
- * Интерфейс репозитория
162
- */
163
- interface Repository {
164
- /** Уникальный идентификатор репозитория */
165
- id: number;
166
- /** Информация о владельце репозитория */
167
- owner: User2;
168
- /** Название репозитория */
169
- name: string;
170
- /** Полное название репозитория в формате {owner}/{repo} */
171
- full_name: string;
172
- /** Описание репозитория */
173
- description?: string;
174
- /** Список тем, связанных с репозиторием */
175
- topics?: string[] | null;
176
- /** Является ли репозиторий приватным */
177
- private: boolean;
178
- /** Является ли репозиторий форком другого репозитория */
179
- fork: boolean;
180
- /** Информация о родительском репозитории (если это форк) */
181
- parent?: Repository | null;
182
- /** Размер репозитория в килобайтах */
183
- size: number;
184
- /** Основной язык программирования, используемый в репозитории */
185
- language?: string;
186
- /** SSH-URL для клонирования репозитория */
187
- ssh_url: string;
188
- /** HTTPS-URL для клонирования репозитория */
189
- clone_url: string;
190
- /** Веб-ссылка на репозиторий */
191
- html_url: string;
192
- /** API-ссылка на репозиторий */
193
- url: string;
194
- /** Git-URL для клонирования репозитория */
195
- git_url: string;
196
- /** Зеркало репозитория (если доступно) */
197
- mirror_url?: string;
198
- /** Ссылка на вебсайт проекта */
199
- website?: string;
200
- /** Альтернативная ссылка на домашнюю страницу проекта */
201
- homepage?: string;
202
- /** Количество звезд у репозитория */
203
- stargazers_count: number;
204
- /** Количество форков репозитория */
205
- forks: number;
206
- /** Количество форков репозитория (дублирует поле forks) */
207
- forks_count: number;
208
- /** Количество наблюдателей за репозиторием */
209
- watchers: number;
210
- /** Количество наблюдателей за репозиторием (дублирует поле watchers) */
211
- watchers_count: number;
212
- /** Количество репозиториев в сети (форков и оригинала) */
213
- network_count: number;
214
- /** Количество подписчиков на уведомления о репозитории */
215
- subscribers_count: number;
216
- /** Количество открытых задач (issues) в репозитории */
217
- open_issues: number;
218
- /** Количество открытых задач (дублирует поле open_issues) */
219
- open_issues_count: number;
220
- /** Количество открытых pull requests */
221
- open_pr_counter: number;
222
- /** Основная ветка репозитория */
223
- default_branch: string;
224
- /** Архивирован ли репозиторий */
225
- archived: boolean;
226
- /** Разрешено ли создание задач (issues) */
227
- has_issues: boolean;
228
- /** Разрешено ли использование проектов */
229
- has_projects: boolean;
230
- /** Разрешено ли использование обсуждений */
231
- has_discussions: boolean;
232
- /** Разрешено ли использование wiki */
233
- has_wiki: boolean;
234
- /** Разрешено ли использование GitHub Pages */
235
- has_pages: boolean;
236
- /** Отключен ли репозиторий */
237
- disabled: boolean;
238
- /** Настройки приватности репозитория */
239
- visibility: VisibilityType;
240
- /** Является ли репозиторий шаблоном */
241
- is_template: boolean;
242
- /** Информация о шаблоне репозитория (если доступно) */
243
- template_repository?: Repository | null;
244
- /** Разрешены ли слияния через merge commits */
245
- allow_merge_commit: boolean;
246
- /** Разрешены ли слияния через squash commits */
247
- allow_squash_merge: boolean;
248
- /** Разрешены ли слияния через rebase */
249
- allow_rebase_merge?: boolean;
250
- /** Удалять ли ветку после слияния по умолчанию */
251
- default_delete_branch_after_merge: boolean;
252
- /** Права доступа текущего пользователя к репозиторию */
253
- permissions?: Permissions;
254
- /** API-ссылка на содержимое репозитория */
255
- contents_url?: string;
256
- /** API-ссылка на форки репозитория */
257
- forks_url?: string;
258
- /** API-ссылка на issues репозитория */
259
- issues_url?: string;
260
- /** API-ссылка на pull requests репозитория */
261
- pulls_url?: string;
262
- /** API-ссылка на языки репозитория */
263
- languages_url?: string;
264
- /** Шаблон API-ссылки на комментарии issues */
265
- issue_comment_url?: string;
266
- /** Дата создания репозитория */
267
- created_at: string;
268
- /** Дата последнего обновления репозитория */
269
- updated_at: string;
270
- /** Дата последнего push-события в репозиторий */
271
- pushed_at: string;
272
- }
273
- /**
274
- * Предупреждение об устаревшей версии API
275
- */
276
- declare class ApiVersionWarning {
277
- /** Текущая используемая версия */
278
- readonly currentVersion: string;
279
- /** Последняя доступная версия */
280
- readonly latestVersion: string;
281
- /** Дата вывода из эксплуатации */
282
- readonly decommissioning?: string;
283
- constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
284
- /**
285
- * Возвращает сообщение о предупреждении
286
- */
287
- getMessage(): string;
288
- }
289
- declare const HTTPMethods: {
290
- readonly DELETE: "DELETE"
291
- readonly GET: "GET"
292
- readonly PATCH: "PATCH"
293
- readonly POST: "POST"
294
- readonly PUT: "PUT"
295
- };
296
- type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
297
- /**
298
- * Параметры для конфигурации GitVerse клиента
299
- */
300
- interface GitVerseClientConfig {
301
- /**
302
- * Базовый URL API GitVerse
303
- * @default 'https://api.gitverse.ru'
304
- */
305
- baseUrl?: string;
306
- /**
307
- * Токен доступа для авторизации в API
308
- */
309
- token?: string;
310
- /**
311
- * Версия API
312
- * @default '1'
313
- */
314
- apiVersion?: string;
315
- }
316
- /**
317
- * Основной класс для работы с GitVerse API
318
- */
319
- declare class GitVerseClient {
320
- private baseUrl;
321
- private token?;
322
- private apiVersion;
323
- /**
324
- * Callback для обработки предупреждений об устаревшей версии API
325
- */
326
- onApiVersionWarning?: (warning: ApiVersionWarning) => void;
327
- /**
328
- * Создает новый экземпляр GitVerse клиента
329
- * @param config Конфигурация клиента
330
- */
331
- constructor(config?: GitVerseClientConfig);
332
- /**
333
- * Устанавливает токен авторизации
334
- * @param token Токен доступа
335
- */
336
- setToken(token: string): void;
337
- /**
338
- * Извлекает информацию о Rate Limit из заголовков ответа
339
- */
340
- private extractRateLimitInfo;
341
- /**
342
- * Извлекает информацию о версии API из заголовков ответа
343
- */
344
- private extractApiVersionInfo;
345
- /**
346
- * Извлекает метаданные из заголовков ответа
347
- */
348
- private extractMetadata;
349
- /**
350
- * Выполняет API-запрос с учетом авторизации и версии API
351
- * @param path Путь к API-ресурсу
352
- * @param method HTTP-метод
353
- * @param body Тело запроса (опционально)
354
- * @param options Опции запроса (опционально)
355
- * @returns Ответ от API
356
- * @throws {RateLimitError} При превышении лимита запросов (429)
357
- * @throws {GitVerseApiError} При других ошибках API
358
- */
359
- request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
360
- /**
361
- * Выполняет GET-запрос
362
- * @param path Путь к API-ресурсу
363
- * @param options Опции запроса (опционально)
364
- * @returns Ответ от API
365
- */
366
- get<T>(path: string, options?: RequestOptions): Promise<T>;
367
- /**
368
- * Выполняет POST-запрос
369
- * @param path Путь к API-ресурсу
370
- * @param body Тело запроса
371
- * @param options Опции запроса (опционально)
372
- * @returns Ответ от API
373
- */
374
- post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
375
- /**
376
- * Выполняет PUT-запрос
377
- * @param path Путь к API-ресурсу
378
- * @param body Тело запроса
379
- * @param options Опции запроса (опционально)
380
- * @returns Ответ от API
381
- */
382
- put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
383
- /**
384
- * Выполняет DELETE-запрос
385
- * @param path Путь к API-ресурсу
386
- * @param body Тело запроса (опционально)
387
- * @param options Опции запроса (опционально)
388
- * @returns Ответ от API
389
- */
390
- delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
391
- /**
392
- * Выполняет PATCH-запрос
393
- * @param path Путь к API-ресурсу
394
- * @param body Тело запроса
395
- * @param options Опции запроса (опционально)
396
- * @returns Ответ от API
397
- */
398
- patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
399
- /**
400
- * Выполняет загрузку файла через multipart/form-data
401
- * @param path Путь к API-ресурсу
402
- * @param fieldName Имя поля для файла
403
- * @param file Файл для загрузки (Blob или ArrayBuffer)
404
- * @param fileName Имя файла
405
- * @param options Опции запроса (опционально)
406
- * @returns Ответ от API
407
- */
408
- uploadFile<T>(path: string, fieldName: string, file: Blob | ArrayBuffer, fileName: string, options?: RequestOptions): Promise<T>;
409
- }
410
- /**
411
- * API для работы с коллабораторами репозитория
412
- */
413
- declare class CollaboratorsApi {
414
- private client;
415
- /**
416
- * Создает новый экземпляр API для работы с коллабораторами
417
- * @param client GitVerse клиент
418
- */
419
- constructor(client: GitVerseClient);
420
- /**
421
- * Получает список коллабораторов репозитория
422
- * @param owner Владелец репозитория
423
- * @param repo Название репозитория
424
- * @param params Параметры пагинации и фильтрации
425
- * @param options Опции запроса
426
- * @returns Список коллабораторов
427
- */
428
- list(owner: string, repo: string, params?: ListCollaboratorsParams, options?: RequestOptions): Promise<Collaborator[]>;
429
- /**
430
- * Добавляет коллаборатора к репозиторию
431
- * @param owner Владелец репозитория
432
- * @param repo Название репозитория
433
- * @param collaborator Имя пользователя коллаборатора
434
- * @param params Параметры добавления (уровень доступа)
435
- * @param options Опции запроса
436
- * @returns Приглашение коллаборатора
437
- */
438
- add(owner: string, repo: string, collaborator: string, params?: AddCollaboratorParams, options?: RequestOptions): Promise<CollaboratorInvitation>;
439
- }
440
- export { CollaboratorsApi };
@@ -1,4 +0,0 @@
1
- class A{client;constructor(j){this.client=j}list(j,k,d,v){let f=new URLSearchParams;if(d?.affiliation)f.append("affiliation",d.affiliation);if(d?.permission)f.append("permission",d.permission);if(d?.page)f.append("page",String(d.page));if(d?.per_page)f.append("per_page",String(d.per_page));let x=f.toString(),z=`/repos/${j}/${k}/collaborators${x?`?${x}`:""}`;return this.client.get(z,v)}add(j,k,d,v,f){return this.client.put(`/repos/${j}/${k}/collaborators/${d}`,v||{},f)}}export{A as CollaboratorsApi};
2
- export{A as f};
3
-
4
- //# debugId=750FB05BEEDDDD6864756E2164756E21
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/api/collaborators.ts"],
4
- "sourcesContent": [
5
- "import type { GitVerseClient } from \"../client\";\nimport type {\n AddCollaboratorParams,\n Collaborator,\n CollaboratorInvitation,\n ListCollaboratorsParams,\n RequestOptions,\n} from \"../types\";\n\n/**\n * API для работы с коллабораторами репозитория\n */\nexport class CollaboratorsApi {\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 owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры пагинации и фильтрации\n * @param options Опции запроса\n * @returns Список коллабораторов\n */\n list(\n owner: string,\n repo: string,\n params?: ListCollaboratorsParams,\n options?: RequestOptions,\n ): Promise<Collaborator[]> {\n const searchParams = new URLSearchParams();\n if (params?.affiliation) searchParams.append(\"affiliation\", params.affiliation);\n if (params?.permission) searchParams.append(\"permission\", params.permission);\n if (params?.page) searchParams.append(\"page\", String(params.page));\n if (params?.per_page) searchParams.append(\"per_page\", String(params.per_page));\n\n const queryString = searchParams.toString();\n const url = `/repos/${owner}/${repo}/collaborators${queryString ? `?${queryString}` : \"\"}`;\n\n return this.client.get<Collaborator[]>(url, options);\n }\n\n /**\n * Добавляет коллаборатора к репозиторию\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param collaborator Имя пользователя коллаборатора\n * @param params Параметры добавления (уровень доступа)\n * @param options Опции запроса\n * @returns Приглашение коллаборатора\n */\n add(\n owner: string,\n repo: string,\n collaborator: string,\n params?: AddCollaboratorParams,\n options?: RequestOptions,\n ): Promise<CollaboratorInvitation> {\n return this.client.put<CollaboratorInvitation>(\n `/repos/${owner}/${repo}/collaborators/${collaborator}`,\n params || {},\n options,\n );\n }\n}\n"
6
- ],
7
- "mappings": "AAYO,MAAM,CAAiB,CACpB,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAWhB,IAAI,CACF,EACA,EACA,EACA,EACyB,CACzB,IAAM,EAAe,IAAI,gBACzB,GAAI,GAAQ,YAAa,EAAa,OAAO,cAAe,EAAO,WAAW,EAC9E,GAAI,GAAQ,WAAY,EAAa,OAAO,aAAc,EAAO,UAAU,EAC3E,GAAI,GAAQ,KAAM,EAAa,OAAO,OAAQ,OAAO,EAAO,IAAI,CAAC,EACjE,GAAI,GAAQ,SAAU,EAAa,OAAO,WAAY,OAAO,EAAO,QAAQ,CAAC,EAE7E,IAAM,EAAc,EAAa,SAAS,EACpC,EAAM,UAAU,KAAS,kBAAqB,EAAc,IAAI,IAAgB,KAEtF,OAAO,KAAK,OAAO,IAAoB,EAAK,CAAO,EAYrD,GAAG,CACD,EACA,EACA,EACA,EACA,EACiC,CACjC,OAAO,KAAK,OAAO,IACjB,UAAU,KAAS,mBAAsB,IACzC,GAAU,CAAC,EACX,CACF,EAEJ",
8
- "debugId": "750FB05BEEDDDD6864756E2164756E21",
9
- "names": []
10
- }