gitverse-api-sdk 5.0.0 → 5.0.1

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 (65) hide show
  1. package/README.md +1 -21
  2. package/dist/api/actions.d.ts +302 -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/pulls.d.ts +309 -526
  15. package/dist/api/pulls.js +3 -3
  16. package/dist/api/pulls.js.map +3 -3
  17. package/dist/api/releases.d.ts +183 -244
  18. package/dist/api/releases.js +3 -3
  19. package/dist/api/releases.js.map +3 -3
  20. package/dist/api/repositories.d.ts +859 -395
  21. package/dist/api/repositories.js +3 -3
  22. package/dist/api/repositories.js.map +3 -3
  23. package/dist/api/stars.d.ts +95 -231
  24. package/dist/api/stars.js +3 -3
  25. package/dist/api/stars.js.map +3 -3
  26. package/dist/api/teams.d.ts +96 -122
  27. package/dist/api/teams.js +3 -3
  28. package/dist/api/teams.js.map +3 -3
  29. package/dist/api/users.d.ts +78 -170
  30. package/dist/api/users.js +3 -3
  31. package/dist/api/users.js.map +3 -3
  32. package/dist/client.d.ts +4 -0
  33. package/dist/client.js +3 -3
  34. package/dist/client.js.map +1 -1
  35. package/dist/enums.d.ts +27 -71
  36. package/dist/enums.js +3 -3
  37. package/dist/enums.js.map +3 -3
  38. package/dist/errors.d.ts +12 -10
  39. package/dist/errors.js +2 -2
  40. package/dist/errors.js.map +1 -1
  41. package/dist/index.d.ts +1816 -2442
  42. package/dist/index.js +2 -2
  43. package/dist/index.js.map +3 -3
  44. package/dist/types.d.ts +754 -1696
  45. package/dist/utils.js +1 -2
  46. package/dist/utils.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/api/branches.d.ts +0 -205
  49. package/dist/api/branches.js +0 -4
  50. package/dist/api/branches.js.map +0 -10
  51. package/dist/api/collaborators.d.ts +0 -440
  52. package/dist/api/collaborators.js +0 -4
  53. package/dist/api/collaborators.js.map +0 -10
  54. package/dist/api/commits.d.ts +0 -406
  55. package/dist/api/commits.js +0 -4
  56. package/dist/api/commits.js.map +0 -10
  57. package/dist/api/contents.d.ts +0 -389
  58. package/dist/api/contents.js +0 -4
  59. package/dist/api/contents.js.map +0 -10
  60. package/dist/api/forks.d.ts +0 -387
  61. package/dist/api/forks.js +0 -4
  62. package/dist/api/forks.js.map +0 -10
  63. package/dist/api/git.d.ts +0 -277
  64. package/dist/api/git.js +0 -4
  65. 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.0.1",
4
4
  "description": "Полнофункциональный TypeScript SDK для GitVerse API с поддержкой всех эндпоинтов, обработкой Rate Limits и версионирования",
5
5
  "keywords": [
6
6
  "gitverse",
@@ -1,205 +0,0 @@
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
- /**
15
- * Базовые параметры пагинации
16
- */
17
- interface PaginationParams {
18
- /** Номер страницы (начиная с 1) */
19
- page?: number;
20
- /** Количество элементов на странице */
21
- per_page?: number;
22
- }
23
- /**
24
- * Параметры для получения списка веток
25
- */
26
- interface ListBranchesParams extends PaginationParams {
27
- /** Поисковый запрос для фильтрации веток по имени */
28
- q?: string;
29
- }
30
- /**
31
- * Интерфейс ветки репозитория
32
- */
33
- interface Branch {
34
- /** Имя ветки */
35
- name: string;
36
- /** SHA-хеш последнего коммита */
37
- commit: {
38
- sha: string
39
- url: string
40
- /** Дата создания коммита */
41
- created?: string
42
- /** Веб-ссылка на коммит */
43
- html_url?: string
44
- };
45
- /** Защищена ли ветка */
46
- protected?: boolean;
47
- }
48
- /**
49
- * Предупреждение об устаревшей версии API
50
- */
51
- declare class ApiVersionWarning {
52
- /** Текущая используемая версия */
53
- readonly currentVersion: string;
54
- /** Последняя доступная версия */
55
- readonly latestVersion: string;
56
- /** Дата вывода из эксплуатации */
57
- readonly decommissioning?: string;
58
- constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
59
- /**
60
- * Возвращает сообщение о предупреждении
61
- */
62
- getMessage(): string;
63
- }
64
- declare const HTTPMethods: {
65
- readonly DELETE: "DELETE"
66
- readonly GET: "GET"
67
- readonly PATCH: "PATCH"
68
- readonly POST: "POST"
69
- readonly PUT: "PUT"
70
- };
71
- type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
72
- /**
73
- * Параметры для конфигурации GitVerse клиента
74
- */
75
- interface GitVerseClientConfig {
76
- /**
77
- * Базовый URL API GitVerse
78
- * @default 'https://api.gitverse.ru'
79
- */
80
- baseUrl?: string;
81
- /**
82
- * Токен доступа для авторизации в API
83
- */
84
- token?: string;
85
- /**
86
- * Версия API
87
- * @default '1'
88
- */
89
- apiVersion?: string;
90
- }
91
- /**
92
- * Основной класс для работы с GitVerse API
93
- */
94
- declare class GitVerseClient {
95
- private baseUrl;
96
- private token?;
97
- private apiVersion;
98
- /**
99
- * Callback для обработки предупреждений об устаревшей версии API
100
- */
101
- onApiVersionWarning?: (warning: ApiVersionWarning) => void;
102
- /**
103
- * Создает новый экземпляр GitVerse клиента
104
- * @param config Конфигурация клиента
105
- */
106
- constructor(config?: GitVerseClientConfig);
107
- /**
108
- * Устанавливает токен авторизации
109
- * @param token Токен доступа
110
- */
111
- setToken(token: string): void;
112
- /**
113
- * Извлекает информацию о Rate Limit из заголовков ответа
114
- */
115
- private extractRateLimitInfo;
116
- /**
117
- * Извлекает информацию о версии API из заголовков ответа
118
- */
119
- private extractApiVersionInfo;
120
- /**
121
- * Извлекает метаданные из заголовков ответа
122
- */
123
- private extractMetadata;
124
- /**
125
- * Выполняет API-запрос с учетом авторизации и версии API
126
- * @param path Путь к API-ресурсу
127
- * @param method HTTP-метод
128
- * @param body Тело запроса (опционально)
129
- * @param options Опции запроса (опционально)
130
- * @returns Ответ от API
131
- * @throws {RateLimitError} При превышении лимита запросов (429)
132
- * @throws {GitVerseApiError} При других ошибках API
133
- */
134
- request<T>(path: string, method: HTTPMethods, body?: unknown, options?: RequestOptions): Promise<T>;
135
- /**
136
- * Выполняет GET-запрос
137
- * @param path Путь к API-ресурсу
138
- * @param options Опции запроса (опционально)
139
- * @returns Ответ от API
140
- */
141
- get<T>(path: string, options?: RequestOptions): Promise<T>;
142
- /**
143
- * Выполняет POST-запрос
144
- * @param path Путь к API-ресурсу
145
- * @param body Тело запроса
146
- * @param options Опции запроса (опционально)
147
- * @returns Ответ от API
148
- */
149
- post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
150
- /**
151
- * Выполняет PUT-запрос
152
- * @param path Путь к API-ресурсу
153
- * @param body Тело запроса
154
- * @param options Опции запроса (опционально)
155
- * @returns Ответ от API
156
- */
157
- put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
158
- /**
159
- * Выполняет DELETE-запрос
160
- * @param path Путь к API-ресурсу
161
- * @param body Тело запроса (опционально)
162
- * @param options Опции запроса (опционально)
163
- * @returns Ответ от API
164
- */
165
- delete<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
166
- /**
167
- * Выполняет PATCH-запрос
168
- * @param path Путь к API-ресурсу
169
- * @param body Тело запроса
170
- * @param options Опции запроса (опционально)
171
- * @returns Ответ от API
172
- */
173
- patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
174
- /**
175
- * Выполняет загрузку файла через multipart/form-data
176
- * @param path Путь к API-ресурсу
177
- * @param fieldName Имя поля для файла
178
- * @param file Файл для загрузки (Blob или ArrayBuffer)
179
- * @param fileName Имя файла
180
- * @param options Опции запроса (опционально)
181
- * @returns Ответ от API
182
- */
183
- uploadFile<T>(path: string, fieldName: string, file: Blob | ArrayBuffer, fileName: string, options?: RequestOptions): Promise<T>;
184
- }
185
- /**
186
- * API для работы с ветками репозитория
187
- */
188
- declare class BranchesApi {
189
- private client;
190
- /**
191
- * Создает новый экземпляр API для работы с ветками
192
- * @param client GitVerse клиент
193
- */
194
- constructor(client: GitVerseClient);
195
- /**
196
- * Получает список веток репозитория
197
- * @param owner Владелец репозитория
198
- * @param repo Название репозитория
199
- * @param params Параметры пагинации и фильтрации
200
- * @param options Опции запроса
201
- * @returns Список веток
202
- */
203
- list(owner: string, repo: string, params?: ListBranchesParams, options?: RequestOptions): Promise<Branch[]>;
204
- }
205
- export { BranchesApi };
@@ -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
- }