gitverse-api-sdk 4.0.0 → 4.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.
- package/dist/api/emails.js +2 -2
- package/dist/api/emails.js.map +1 -1
- package/dist/api/forks.js +2 -2
- package/dist/api/forks.js.map +1 -1
- package/dist/api/pulls.js +2 -2
- package/dist/api/pulls.js.map +2 -2
- package/dist/api/repositories.js +2 -2
- package/dist/api/repositories.js.map +1 -1
- package/dist/api/stars.js +2 -2
- package/dist/api/stars.js.map +1 -1
- package/dist/api/users.js +2 -2
- package/dist/api/users.js.map +1 -1
- package/dist/client.js +2 -2
- package/dist/client.js.map +1 -1
- package/dist/enums.js +2 -2
- package/dist/enums.js.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/api/emails.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
class d{client;constructor(b){this.client=b}list(b){return this.client.get("/user/emails",b)}add(b,c){return this.client.post("/user/emails",b,c)}remove(b,c){return this.client.delete("/user/emails",b,c)}}export{d as EmailsApi};
|
|
2
|
-
export{d as
|
|
2
|
+
export{d as C};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=D1A5F692F80A486964756E2164756E21
|
package/dist/api/emails.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import type { GitVerseClient } from \"../client\";\nimport type { AddEmailParams, Email, EmailOperationResponse, RemoveEmailParams, RequestOptions } from \"../types\";\n\n/**\n * Класс для работы с email адресами пользователя\n */\nexport class EmailsApi {\n constructor(private client: GitVerseClient) {}\n\n /**\n * Получить список email адресов текущего пользователя\n * @returns {Promise<Email[]>} Массив email адресов\n */\n list(options?: RequestOptions): Promise<Email[]> {\n return this.client.get<Email[]>(\"/user/emails\", options);\n }\n\n /**\n * Добавить email адреса к аккаунту пользователя\n * @param {AddEmailParams} params - Параметры для добавления email\n * @returns {Promise<EmailOperationResponse>} Результат операции\n */\n add(params: AddEmailParams, options?: RequestOptions): Promise<EmailOperationResponse> {\n return this.client.post<EmailOperationResponse>(\"/user/emails\", params, options);\n }\n\n /**\n * Удалить email адреса из аккаунта пользователя\n * @param {RemoveEmailParams} params - Параметры для удаления email\n * @returns {Promise<EmailOperationResponse>} Результат операции\n */\n remove(params: RemoveEmailParams, options?: RequestOptions): Promise<EmailOperationResponse> {\n return this.client.delete<EmailOperationResponse>(\"/user/emails\", params, options);\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "AAMO,MAAM,CAAU,CACD,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,CAAC,EAA4C,CAC/C,OAAO,KAAK,OAAO,IAAa,eAAgB,CAAO,EAQzD,GAAG,CAAC,EAAwB,EAA2D,CACrF,OAAO,KAAK,OAAO,KAA6B,eAAgB,EAAQ,CAAO,EAQjF,MAAM,CAAC,EAA2B,EAA2D,CAC3F,OAAO,KAAK,OAAO,OAA+B,eAAgB,EAAQ,CAAO,EAErF",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "D1A5F692F80A486964756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/forks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{x as d}from"../utils.js";class q{client;constructor(b){this.client=b}async create(b,g,h,j){let k=await this.client.post(`/repos/${b}/${g}/forks`,h,j);return d(k)}}export{q as ForksApi};
|
|
2
2
|
export{q as n};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=F059D4A48F60551264756E2164756E21
|
package/dist/api/forks.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import type { GitVerseClient } from \"../client\";\nimport type { CreateForkParams, Repository, RequestOptions } from \"../types\";\nimport { fixRepositoryUrls } from \"../utils\";\n\n/**\n * API для работы с форками репозиториев\n */\nexport class ForksApi {\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 * @returns Информация о созданном форке\n */\n async create(owner: string, repo: string, params?: CreateForkParams, options?: RequestOptions): Promise<Repository> {\n const repository = await this.client.post<Repository>(`/repos/${owner}/${repo}/forks`, params, options);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "gCAOO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,OAUV,OAAM,CAAC,EAAe,EAAc,EAA2B,EAA+C,CAClH,IAAM,EAAa,MAAM,KAAK,OAAO,KAAiB,UAAU,KAAS,UAAc,EAAQ,CAAO,EACtG,OAAO,EAAkB,CAAgD,EAE7E",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "F059D4A48F60551264756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/pulls.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{v}from"../errors.js";class y{client;constructor(d){this.client=d}create(d,f,g,j){return this.client.post(`/repos/${d}/${f}/pulls`,g,j)}get(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}`,j)}list(d,f,g,j){let x=new URLSearchParams(Object.entries(g??{})),q=new URL(`/repos/${d}/${f}/pulls`,"http://localhost");return q.search=x.toString(),this.client.get(q.href.replace("http://localhost",""),j)}update(d,f,g,j,k){return this.client.patch(`/repos/${d}/${f}/pulls/${g}`,j,k)}getFiles(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}/files`,j)}updateBranch(d,f,g,j){return this.client.put(`/repos/${d}/${f}/pulls/${g}/update-branch`,{},j)}getCommits(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}/commits`,j)}async checkIfMerged(d,f,g,j){try{return await this.client.get(`/repos/${d}/${f}/pulls/${g}/merge`,j),!0}catch(k){if(k instanceof v&&k.status===404)return!1;throw k}}}export{y as PullsApi};
|
|
1
|
+
import{y as v}from"../errors.js";class y{client;constructor(d){this.client=d}create(d,f,g,j){return this.client.post(`/repos/${d}/${f}/pulls`,g,j)}get(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}`,j)}list(d,f,g,j){let x=new URLSearchParams(Object.entries(g??{})),q=new URL(`/repos/${d}/${f}/pulls`,"http://localhost");return q.search=x.toString(),this.client.get(q.href.replace("http://localhost",""),j)}update(d,f,g,j,k){return this.client.patch(`/repos/${d}/${f}/pulls/${g}`,j,k)}getFiles(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}/files`,j)}updateBranch(d,f,g,j){return this.client.put(`/repos/${d}/${f}/pulls/${g}/update-branch`,{},j)}getCommits(d,f,g,j){return this.client.get(`/repos/${d}/${f}/pulls/${g}/commits`,j)}async checkIfMerged(d,f,g,j){try{return await this.client.get(`/repos/${d}/${f}/pulls/${g}/merge`,j),!0}catch(k){if(k instanceof v&&k.status===404)return!1;throw k}}}export{y as PullsApi};
|
|
2
2
|
export{y as m};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=ABA2D3D0D6C6653C64756E2164756E21
|
package/dist/api/pulls.js.map
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { GitVerseClient } from \"../client\";\nimport { GitVerseApiError } from \"../errors\";\nimport type {\n Commit,\n CreatePullRequestParams,\n ListPullRequestsParams,\n PullRequest,\n PullRequestFile,\n RequestOptions,\n UpdatePullRequestParams,\n} from \"../types\";\n\n/**\n * API для работы с запросами на слияние (пулл-реквестами)\n */\nexport class PullsApi {\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 * @returns Информация о созданном запросе на слияние\n */\n create(owner: string, repo: string, params: CreatePullRequestParams, options?: RequestOptions): Promise<PullRequest> {\n return this.client.post<PullRequest>(`/repos/${owner}/${repo}/pulls`, params, options);\n }\n\n /**\n * Получает запрос на слияние по его номеру\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер запроса на слияние\n * @returns Информация о запросе на слияние\n */\n get(owner: string, repo: string, number: number, options?: RequestOptions): Promise<PullRequest> {\n return this.client.get<PullRequest>(`/repos/${owner}/${repo}/pulls/${number}`, options);\n }\n\n /**\n * Получает список запросов на слияние в репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param state Состояние запросов на слияние (открытые/закрытые/все)\n * @returns Список запросов на слияние\n */\n list(owner: string, repo: string, params?: ListPullRequestsParams, options?: RequestOptions): Promise<PullRequest[]> {\n const TEMP = \"http://localhost\";\n\n const search = new URLSearchParams(Object.entries(params ?? {}));\n\n const path = new URL(`/repos/${owner}/${repo}/pulls`, TEMP);\n\n path.search = search.toString();\n\n return this.client.get<PullRequest[]>(path.href.replace(TEMP, \"\"), options);\n }\n\n /**\n * Обновляет pull request\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер pull request\n * @param params Параметры для обновления\n * @returns Обновлённый pull request\n */\n update(\n owner: string,\n repo: string,\n number: number,\n params: UpdatePullRequestParams,\n options?: RequestOptions,\n ): Promise<PullRequest> {\n return this.client.patch<PullRequest>(`/repos/${owner}/${repo}/pulls/${number}`, params, options);\n }\n\n /**\n * Получает список файлов в pull request\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер pull request\n * @returns Список изменённых файлов\n */\n getFiles(owner: string, repo: string, number: number, options?: RequestOptions): Promise<PullRequestFile[]> {\n return this.client.get<PullRequestFile[]>(`/repos/${owner}/${repo}/pulls/${number}/files`, options);\n }\n\n /**\n * Обновляет ветку pull request с базовой веткой\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер pull request\n * @returns Результат операции\n */\n updateBranch(owner: string, repo: string, number: number, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`/repos/${owner}/${repo}/pulls/${number}/update-branch`, {}, options);\n }\n\n /**\n * Получает список коммитов в pull request\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер pull request\n * @returns Список коммитов\n */\n getCommits(owner: string, repo: string, number: number, options?: RequestOptions): Promise<Commit[]> {\n return this.client.get<Commit[]>(`/repos/${owner}/${repo}/pulls/${number}/commits`, options);\n }\n\n /**\n * Проверяет, был ли pull request влит в базовую ветку\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param number Номер pull request\n * @returns true если PR был влит, false если не был влит или не существует\n */\n async checkIfMerged(owner: string, repo: string, number: number, options?: RequestOptions): Promise<boolean> {\n try {\n await this.client.get<void>(`/repos/${owner}/${repo}/pulls/${number}/merge`, options);\n return true; // Статус 204 - PR был влит\n } catch (error) {\n if (error instanceof GitVerseApiError && error.status === 404) {\n return false; // Статус 404 - PR не был влит или не существует\n }\n throw error; // Пробрасываем другие ошибки (401, 403, 500 и т.д.)\n }\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "iCAeO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAUhB,MAAM,CAAC,EAAe,EAAc,EAAiC,EAAgD,CACnH,OAAO,KAAK,OAAO,KAAkB,UAAU,KAAS,UAAc,EAAQ,CAAO,EAUvF,GAAG,CAAC,EAAe,EAAc,EAAgB,EAAgD,CAC/F,OAAO,KAAK,OAAO,IAAiB,UAAU,KAAS,WAAc,IAAU,CAAO,EAUxF,IAAI,CAAC,EAAe,EAAc,EAAiC,EAAkD,CAGnH,IAAM,EAAS,IAAI,gBAAgB,OAAO,QAAQ,GAAU,CAAC,CAAC,CAAC,EAEzD,EAAO,IAAI,IAAI,UAAU,KAAS,UAJ3B,kBAI6C,EAI1D,OAFA,EAAK,OAAS,EAAO,SAAS,EAEvB,KAAK,OAAO,IAAmB,EAAK,KAAK,QARnC,mBAQiD,EAAE,EAAG,CAAO,EAW5E,MAAM,CACJ,EACA,EACA,EACA,EACA,EACsB,CACtB,OAAO,KAAK,OAAO,MAAmB,UAAU,KAAS,WAAc,IAAU,EAAQ,CAAO,EAUlG,QAAQ,CAAC,EAAe,EAAc,EAAgB,EAAsD,CAC1G,OAAO,KAAK,OAAO,IAAuB,UAAU,KAAS,WAAc,UAAgB,CAAO,EAUpG,YAAY,CAAC,EAAe,EAAc,EAAgB,EAAyC,CACjG,OAAO,KAAK,OAAO,IAAU,UAAU,KAAS,WAAc,kBAAwB,CAAC,EAAG,CAAO,EAUnG,UAAU,CAAC,EAAe,EAAc,EAAgB,EAA6C,CACnG,OAAO,KAAK,OAAO,IAAc,UAAU,KAAS,WAAc,YAAkB,CAAO,OAUvF,cAAa,CAAC,EAAe,EAAc,EAAgB,EAA4C,CAC3G,GAAI,CAEF,OADA,MAAM,KAAK,OAAO,IAAU,UAAU,KAAS,WAAc,UAAgB,CAAO,EAC7E,GACP,MAAO,EAAO,CACd,GAAI,aAAiB,GAAoB,EAAM,SAAW,IACxD,MAAO,GAET,MAAM,GAGZ",
|
|
8
|
+
"debugId": "ABA2D3D0D6C6653C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/repositories.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{x as v}from"../utils.js";class A{client;constructor(g){this.client=g}async get(g,k,j){let q=await this.client.get(`/repos/${g}/${k}`,j);return v(q)}delete(g,k,j){return this.client.delete(`/repos/${g}/${k}`,void 0,j)}async update(g,k,j,q){let z=await this.client.patch(`/repos/${g}/${k}`,j,q);return v(z)}compare(g,k,j,q){return this.client.get(`/repos/${g}/${k}/compare/${j}`,q)}getLanguages(g,k,j){return this.client.get(`/repos/${g}/${k}/languages`,j)}async listForAuthenticatedUser(g){return(await this.client.get("/user/repos",g)).map((j)=>v(j))}async create(g,k){let j=await this.client.post("/user/repos",g,k);return v(j)}}export{A as RepositoriesApi};
|
|
2
2
|
export{A as g};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=5F3CE5D41D18A80664756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import type { GitVerseClient } from \"../client\";\nimport type {\n CompareResponse,\n CreateRepositoryParams,\n LanguagesResponse,\n Repository,\n RequestOptions,\n UpdateRepositoryParams,\n} from \"../types\";\nimport { fixRepositoryUrls } from \"../utils\";\n\n/**\n * API для работы с репозиториями\n */\nexport class RepositoriesApi {\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 * @returns Данные о репозитории\n */\n async get(owner: string, repo: string, options?: RequestOptions): Promise<Repository> {\n const repository = await this.client.get<Repository>(`/repos/${owner}/${repo}`, options);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n\n /**\n * Удаляет репозиторий\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Результат операции\n */\n delete(owner: string, repo: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`/repos/${owner}/${repo}`, undefined, options);\n }\n\n /**\n * Обновляет информацию о репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры для обновления\n * @returns Обновлённый репозиторий\n */\n async update(\n owner: string,\n repo: string,\n params: UpdateRepositoryParams,\n options?: RequestOptions,\n ): Promise<Repository> {\n const repository = await this.client.patch<Repository>(`/repos/${owner}/${repo}`, params, options);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n\n /**\n * Сравнивает две ветки или коммита\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param basehead Строка в формате \"base...head\" для сравнения\n * @returns Результат сравнения с коммитами и изменёнными файлами\n */\n compare(owner: string, repo: string, basehead: string, options?: RequestOptions): Promise<CompareResponse> {\n return this.client.get<CompareResponse>(`/repos/${owner}/${repo}/compare/${basehead}`, options);\n }\n\n /**\n * Получает информацию о языках программирования в репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Объект с языками и количеством байт кода\n */\n getLanguages(owner: string, repo: string, options?: RequestOptions): Promise<LanguagesResponse> {\n return this.client.get<LanguagesResponse>(`/repos/${owner}/${repo}/languages`, options);\n }\n\n /**\n * Получает список репозиториев авторизованного пользователя\n * @returns Массив репозиториев пользователя\n */\n async listForAuthenticatedUser(options?: RequestOptions): Promise<Repository[]> {\n const repositories = await this.client.get<Repository[]>(\"/user/repos\", options);\n return repositories.map(\n (repo) => fixRepositoryUrls(repo as unknown as Record<string, unknown>) as unknown as Repository,\n );\n }\n\n /**\n * Создает новый репозиторий для авторизованного пользователя\n * @param params Параметры создания репозитория\n * @returns Созданный репозиторий\n */\n async create(params: CreateRepositoryParams, options?: RequestOptions): Promise<Repository> {\n const repository = await this.client.post<Repository>(\"/user/repos\", params, options);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "gCAcO,MAAM,CAAgB,CACnB,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,OASV,IAAG,CAAC,EAAe,EAAc,EAA+C,CACpF,IAAM,EAAa,MAAM,KAAK,OAAO,IAAgB,UAAU,KAAS,IAAQ,CAAO,EACvF,OAAO,EAAkB,CAAgD,EAS3E,MAAM,CAAC,EAAe,EAAc,EAAyC,CAC3E,OAAO,KAAK,OAAO,OAAa,UAAU,KAAS,IAAQ,OAAW,CAAO,OAUzE,OAAM,CACV,EACA,EACA,EACA,EACqB,CACrB,IAAM,EAAa,MAAM,KAAK,OAAO,MAAkB,UAAU,KAAS,IAAQ,EAAQ,CAAO,EACjG,OAAO,EAAkB,CAAgD,EAU3E,OAAO,CAAC,EAAe,EAAc,EAAkB,EAAoD,CACzG,OAAO,KAAK,OAAO,IAAqB,UAAU,KAAS,aAAgB,IAAY,CAAO,EAShG,YAAY,CAAC,EAAe,EAAc,EAAsD,CAC9F,OAAO,KAAK,OAAO,IAAuB,UAAU,KAAS,cAAkB,CAAO,OAOlF,yBAAwB,CAAC,EAAiD,CAE9E,OADqB,MAAM,KAAK,OAAO,IAAkB,cAAe,CAAO,GAC3D,IAClB,CAAC,IAAS,EAAkB,CAA0C,CACxE,OAQI,OAAM,CAAC,EAAgC,EAA+C,CAC1F,IAAM,EAAa,MAAM,KAAK,OAAO,KAAiB,cAAe,EAAQ,CAAO,EACpF,OAAO,EAAkB,CAAgD,EAE7E",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "5F3CE5D41D18A80664756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/stars.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{y 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
2
|
export{k as d};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=252F7D633B713CB964756E2164756E21
|
package/dist/api/stars.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
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
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": "
|
|
8
|
+
"debugId": "252F7D633B713CB964756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/api/users.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
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
|
|
2
|
+
export{f as B};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=80A14D4108D6680564756E2164756E21
|
package/dist/api/users.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
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
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": "
|
|
8
|
+
"debugId": "80A14D4108D6680564756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{A as X,y as S,z as U}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
2
|
export{_ as o};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=447BADF644477F0164756E2164756E21
|
package/dist/client.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
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
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,OAaI,QAAU,CAAC,EAAc,EAAqB,EAAgB,EAAsC,CAExG,IAAM,EAAY,EAAK,WAAW,GAAG,EAAI,EAAK,MAAM,CAAC,EAAI,EACnD,EAAM,GAAG,KAAK,WAAW,IAEzB,EAAU,IAAI,QAKpB,GAHA,EAAQ,IAAI,eAAgB,kBAAkB,EAC9C,EAAQ,IAAI,SAAU,iDAAiD,KAAK,YAAY,EAEpF,KAAK,MACP,EAAQ,IAAI,gBAAiB,UAAU,KAAK,OAAO,EAGrD,IAAM,EAA4B,CAChC,KAAM,EAAO,KAAK,UAAU,CAAI,EAAI,OACpC,UACA,SACA,OAAQ,GAAS,MACnB,EAEM,EAAW,MAAM,MAAM,EAAK,CAAY,EAGxC,EAAW,KAAK,gBAAgB,EAAS,OAAO,EAElD,EACJ,GAAI,CACF,EAAO,MAAM,EAAS,KAAK,EAC3B,KAAM,CACN,EAAO,OAGT,GAAI,CAAC,EAAS,GAAI,CAEhB,IAAM,EADQ,GACc,SAAW,EAAS,WAGhD,GAAI,EAAS,SAAW,KAAO,EAAS,UACtC,MAAM,IAAI,EACR,GAAgB,6CAChB,EAAS,UACT,CACF,EAIF,MAAM,IAAI,EAAiB,EAAS,OAAQ,EAAc,CAAQ,EAGpE,OAAO,EAST,GAAM,CAAC,EAAc,EAAsC,CACzD,OAAO,KAAK,QAAW,EAAM,EAAY,IAAK,OAAW,CAAO,EAUlE,IAAO,CAAC,EAAc,EAAgB,EAAsC,CAC1E,OAAO,KAAK,QAAW,EAAM,EAAY,KAAM,EAAM,CAAO,EAU9D,GAAM,CAAC,EAAc,EAAgB,EAAsC,CACzE,OAAO,KAAK,QAAW,EAAM,EAAY,IAAK,EAAM,CAAO,EAU7D,MAAS,CAAC,EAAc,EAAgB,EAAsC,CAC5E,OAAO,KAAK,QAAW,EAAM,EAAY,OAAQ,EAAM,CAAO,EAUhE,KAAQ,CAAC,EAAc,EAAgB,EAAsC,CAC3E,OAAO,KAAK,QAAW,EAAM,EAAY,MAAO,EAAM,CAAO,EAEjE",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "447BADF644477F0164756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/enums.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var a={Organization:"Organization",User:"User"},b={Limited:"limited",Private:"private",Public:"public"},c={Directory:"dir",File:"file"},d={Closed:"closed",Open:"open"},f={Closed:"closed",Open:"open"},g={All:"all",Closed:"closed",Open:"open"},h={Created:"created",LongRunning:"long-running",Popularity:"popularity",Updated:"updated"},i={Ascending:"asc",Descending:"desc"};export{b as VisibilityType,a as UserType,g as PullRequestStateFilter,d as PullRequestState,i as PullRequestSortDirection,h as PullRequestSortCriteria,f as IssueState,c as ContentType};
|
|
2
|
-
export{a as p,b as q,c as r,d as s,f as t};
|
|
2
|
+
export{a as p,b as q,c as r,d as s,f as t,g as u,h as v,i as w};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=6326AF9F6C2C2D5064756E2164756E21
|
package/dist/enums.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"/**\n * Типы пользователей в системе\n */\nexport const UserType = {\n Organization: \"Organization\",\n User: \"User\",\n} as const;\n\n/**\n * Тип для типов пользователей\n */\nexport type UserType = (typeof UserType)[keyof typeof UserType];\n\n/**\n * Типы видимости для репозиториев и пользователей\n */\nexport const VisibilityType = {\n Limited: \"limited\",\n Private: \"private\",\n Public: \"public\",\n} as const;\n\n/**\n * Тип для типов видимости\n */\nexport type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];\n\n/**\n * Типы содержимого в репозитории\n */\nexport const ContentType = {\n Directory: \"dir\",\n File: \"file\",\n} as const;\n\n/**\n * Тип для типов содержимого\n */\nexport type ContentType = (typeof ContentType)[keyof typeof ContentType];\n\n/**\n * Состояния pull request\n */\nexport const PullRequestState = {\n Closed: \"closed\",\n Open: \"open\",\n} as const;\n\n/**\n * Тип для состояний pull request\n */\nexport type PullRequestState = (typeof PullRequestState)[keyof typeof PullRequestState];\n\n/**\n * Состояния issue\n */\nexport const IssueState = {\n Closed: \"closed\",\n Open: \"open\",\n} as const;\n\n/**\n * Тип для состояний issue\n */\nexport type IssueState = (typeof IssueState)[keyof typeof IssueState];\n\n/**\n * Фильтры состояний pull request, включая \"все\"\n */\nexport const PullRequestStateFilter = {\n All: \"all\",\n Closed: \"closed\",\n Open: \"open\",\n} as const;\n\n/**\n * Тип для фильтров состояний pull request\n */\nexport type PullRequestStateFilter = (typeof PullRequestStateFilter)[keyof typeof PullRequestStateFilter];\n\n/**\n * Критерии сортировки pull request\n */\nexport const PullRequestSortCriteria = {\n Created: \"created\",\n LongRunning: \"long-running\",\n Popularity: \"popularity\",\n Updated: \"updated\",\n} as const;\n\n/**\n * Тип для критериев сортировки pull request\n */\nexport type PullRequestSortCriteria = (typeof PullRequestSortCriteria)[keyof typeof PullRequestSortCriteria];\n\n/**\n * Направления сортировки pull request\n */\nexport const PullRequestSortDirection = {\n Ascending: \"asc\",\n Descending: \"desc\",\n} as const;\n\n/**\n * Тип для направлений сортировки pull request\n */\nexport type PullRequestSortDirection = (typeof PullRequestSortDirection)[keyof typeof PullRequestSortDirection];\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "AAGO,IAAM,EAAW,CACtB,aAAc,eACd,KAAM,MACR,EAUa,EAAiB,CAC5B,QAAS,UACT,QAAS,UACT,OAAQ,QACV,EAUa,EAAc,CACzB,UAAW,MACX,KAAM,MACR,EAUa,EAAmB,CAC9B,OAAQ,SACR,KAAM,MACR,EAUa,EAAa,CACxB,OAAQ,SACR,KAAM,MACR,EAUa,EAAyB,CACpC,IAAK,MACL,OAAQ,SACR,KAAM,MACR,EAUa,EAA0B,CACrC,QAAS,UACT,YAAa,eACb,WAAY,aACZ,QAAS,SACX,EAUa,EAA2B,CACtC,UAAW,MACX,WAAY,MACd",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "6326AF9F6C2C2D5064756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/errors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
class j extends Error{status;metadata;constructor(b,f,h){super(f);this.name="GitVerseApiError",this.status=b,this.metadata=h,Object.setPrototypeOf(this,j.prototype)}}class k extends j{rateLimit;constructor(b,f,h){super(429,b,h);this.name="RateLimitError",this.rateLimit=f,Object.setPrototypeOf(this,k.prototype)}getRetryAfterSeconds(){return this.rateLimit.retryAfter}getResetDate(){return new Date(this.rateLimit.reset*1000)}}class q{currentVersion;latestVersion;decommissioning;constructor(b,f,h){this.currentVersion=b,this.latestVersion=f,this.decommissioning=h}getMessage(){let b=`Используется устаревшая версия API: ${this.currentVersion}. Последняя версия: ${this.latestVersion}.`;if(this.decommissioning)b+=` Версия будет выведена из эксплуатации: ${this.decommissioning}.`;return b}}export{k as RateLimitError,j as GitVerseApiError,q as ApiVersionWarning};
|
|
2
|
-
export{j as
|
|
2
|
+
export{j as y,k as z,q as A};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=7AA64E97E2F8788D64756E2164756E21
|
package/dist/errors.js.map
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"/**\n * Классы ошибок для GitVerse API\n */\n\nimport type { ApiResponseMetadata, RateLimitInfo } from \"./types\";\n\n/**\n * Базовая ошибка GitVerse API\n */\nexport class GitVerseApiError extends Error {\n /** HTTP статус код */\n public readonly status: number;\n /** Метаданные ответа API */\n public readonly metadata?: ApiResponseMetadata;\n\n constructor(status: number, message: string, metadata?: ApiResponseMetadata) {\n super(message);\n this.name = \"GitVerseApiError\";\n this.status = status;\n this.metadata = metadata;\n\n // Поддержка instanceof для расширенных классов ошибок\n Object.setPrototypeOf(this, GitVerseApiError.prototype);\n }\n}\n\n/**\n * Ошибка превышения лимита запросов (429 Too Many Requests)\n */\nexport class RateLimitError extends GitVerseApiError {\n /** Информация о лимитах */\n public readonly rateLimit: RateLimitInfo;\n\n constructor(message: string, rateLimit: RateLimitInfo, metadata?: ApiResponseMetadata) {\n super(429, message, metadata);\n this.name = \"RateLimitError\";\n this.rateLimit = rateLimit;\n\n Object.setPrototypeOf(this, RateLimitError.prototype);\n }\n\n /**\n * Возвращает количество секунд до сброса лимита\n */\n getRetryAfterSeconds(): number {\n return this.rateLimit.retryAfter;\n }\n\n /**\n * Возвращает дату/время сброса лимита\n */\n getResetDate(): Date {\n return new Date(this.rateLimit.reset * 1000);\n }\n}\n\n/**\n * Предупреждение об устаревшей версии API\n */\nexport class ApiVersionWarning {\n /** Текущая используемая версия */\n public readonly currentVersion: string;\n /** Последняя доступная версия */\n public readonly latestVersion: string;\n /** Дата вывода из эксплуатации */\n public readonly decommissioning?: string;\n\n constructor(currentVersion: string, latestVersion: string, decommissioning?: string) {\n this.currentVersion = currentVersion;\n this.latestVersion = latestVersion;\n this.decommissioning = decommissioning;\n }\n\n /**\n * Возвращает сообщение о предупреждении\n */\n getMessage(): string {\n let message = `Используется устаревшая версия API: ${this.currentVersion}. Последняя версия: ${this.latestVersion}.`;\n if (this.decommissioning) {\n message += ` Версия будет выведена из эксплуатации: ${this.decommissioning}.`;\n }\n return message;\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "AASO,MAAM,UAAyB,KAAM,CAE1B,OAEA,SAEhB,WAAW,CAAC,EAAgB,EAAiB,EAAgC,CAC3E,MAAM,CAAO,EACb,KAAK,KAAO,mBACZ,KAAK,OAAS,EACd,KAAK,SAAW,EAGhB,OAAO,eAAe,KAAM,EAAiB,SAAS,EAE1D,CAKO,MAAM,UAAuB,CAAiB,CAEnC,UAEhB,WAAW,CAAC,EAAiB,EAA0B,EAAgC,CACrF,MAAM,IAAK,EAAS,CAAQ,EAC5B,KAAK,KAAO,iBACZ,KAAK,UAAY,EAEjB,OAAO,eAAe,KAAM,EAAe,SAAS,EAMtD,oBAAoB,EAAW,CAC7B,OAAO,KAAK,UAAU,WAMxB,YAAY,EAAS,CACnB,OAAO,IAAI,KAAK,KAAK,UAAU,MAAQ,IAAI,EAE/C,CAKO,MAAM,CAAkB,CAEb,eAEA,cAEA,gBAEhB,WAAW,CAAC,EAAwB,EAAuB,EAA0B,CACnF,KAAK,eAAiB,EACtB,KAAK,cAAgB,EACrB,KAAK,gBAAkB,EAMzB,UAAU,EAAW,CACnB,IAAI,EAAU,uCAAsC,KAAK,qCAAqC,KAAK,iBACnG,GAAI,KAAK,gBACP,GAAW,2CAA0C,KAAK,mBAE5D,OAAO,EAEX",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "7AA64E97E2F8788D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -681,6 +681,17 @@ interface Milestone {
|
|
|
681
681
|
due_on?: string;
|
|
682
682
|
}
|
|
683
683
|
/**
|
|
684
|
+
* Интерфейс ошибки API
|
|
685
|
+
*/
|
|
686
|
+
interface ApiError {
|
|
687
|
+
/** Тип ошибки */
|
|
688
|
+
error: string;
|
|
689
|
+
/** Сообщение об ошибке */
|
|
690
|
+
message: string;
|
|
691
|
+
/** HTTP-код статуса */
|
|
692
|
+
status: number;
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
684
695
|
* Интерфейс email адреса
|
|
685
696
|
*/
|
|
686
697
|
interface Email {
|
|
@@ -2448,4 +2459,4 @@ declare class GitVerse {
|
|
|
2448
2459
|
*/
|
|
2449
2460
|
setToken(token: string): GitVerse;
|
|
2450
2461
|
}
|
|
2451
|
-
export { VisibilityType, UserType, User2 as User, Team, Repository, Release, RateLimitInfo, RateLimitError, PullRequestState, PullRequest, IssueState, Issue, GitVerseApiError, GitVerse, CurrentUser, ContentType, Content, Commit, Branch, ApiVersionWarning, ApiVersionInfo, ApiResponseMetadata };
|
|
2462
|
+
export { VisibilityType, Variable, UserType, User2 as User, UploadAssetParams, UpdateVariableParams, UpdateRepositoryParams, UpdateReleaseParams, UpdatePullRequestParams, UpdateFileParams, TreeEntry, Tree, TimelineEvent, Team, Secret, Runner, RequestOptions, Repository, RemoveEmailParams, Release, Reference, RateLimitInfo, RateLimitError, PullRequestStateFilter, PullRequestState, PullRequestSortDirection, PullRequestSortCriteria, PullRequestFile, PullRequestBase, PullRequest, Milestone, ListPullRequestsParams, LanguagesResponse, Label, IssueState, Issue, Invitation, GitVerseApiError, GitVerse, FileDeletionResponse, FileCreationResponse, FileContent, EmailOperationResponse, Email, DispatchWorkflowParams, DirectoryContent, DeleteFileParams, CurrentUser, CreateVariableParams, CreateTreeParams, CreateSecretParams, CreateRepositoryParams, CreateReleaseParams, CreateRefParams, CreatePullRequestParams, CreateForkParams, CreateFileParams, CreateCommitParams, ContentType, Content, CompareResponse, CommitInfo, Commit, Comment, Branch, Asset, Artifact, ApiVersionWarning, ApiVersionInfo, ApiResponseMetadata, ApiError, AddEmailParams };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as L}from"./api/organizations.js";import{b as x}from"./api/commits.js";import{c as q}from"./api/actions.js";import{d as W}from"./api/stars.js";import{e as K}from"./api/issues.js";import{f as v}from"./api/branches.js";import{g as Q}from"./api/repositories.js";import{h as w}from"./api/collaborators.js";import{i as y}from"./api/contents.js";import{j as X}from"./api/teams.js";import{k as J}from"./api/git.js";import{l as N}from"./api/releases.js";import{m as M}from"./api/pulls.js";import{n as H}from"./api/forks.js";import{o as j}from"./client.js";import{p as
|
|
1
|
+
import{a as L}from"./api/organizations.js";import{b as x}from"./api/commits.js";import{c as q}from"./api/actions.js";import{d as W}from"./api/stars.js";import{e as K}from"./api/issues.js";import{f as v}from"./api/branches.js";import{g as Q}from"./api/repositories.js";import{h as w}from"./api/collaborators.js";import{i as y}from"./api/contents.js";import{j as X}from"./api/teams.js";import{k as J}from"./api/git.js";import{l as N}from"./api/releases.js";import{m as M}from"./api/pulls.js";import{n as H}from"./api/forks.js";import{o as j}from"./client.js";import{p as c,q as l,r as A,s as n,t as r,u as t,v as o,w as e}from"./enums.js";import"./utils.js";import{A as m,y as g,z as u}from"./errors.js";import{B as Y}from"./api/users.js";import{C as D}from"./api/emails.js";class Z{client;users;repos;contents;pulls;forks;emails;issues;stars;branches;commits;collaborators;organizations;teams;releases;git;actions;constructor(d={}){this.client=new j(d),this.users=new Y(this.client),this.repos=new Q(this.client),this.contents=new y(this.client),this.pulls=new M(this.client),this.forks=new H(this.client),this.emails=new D(this.client),this.issues=new K(this.client),this.stars=new W(this.client),this.branches=new v(this.client),this.commits=new x(this.client),this.collaborators=new w(this.client),this.organizations=new L(this.client),this.teams=new X(this.client),this.releases=new N(this.client),this.git=new J(this.client),this.actions=new q(this.client)}setToken(d){return this.client.setToken(d),this}}export{l as VisibilityType,c as UserType,u as RateLimitError,t as PullRequestStateFilter,n as PullRequestState,e as PullRequestSortDirection,o as PullRequestSortCriteria,r as IssueState,g as GitVerseApiError,Z as GitVerse,A as ContentType,m as ApiVersionWarning};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=E0F5CA15FC5D2DEB64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { ActionsApi } from \"./api/actions\";\nimport { BranchesApi } from \"./api/branches\";\nimport { CollaboratorsApi } from \"./api/collaborators\";\nimport { CommitsApi } from \"./api/commits\";\nimport { ContentsApi } from \"./api/contents\";\nimport { EmailsApi } from \"./api/emails\";\nimport { ForksApi } from \"./api/forks\";\nimport { GitApi } from \"./api/git\";\nimport { IssuesApi } from \"./api/issues\";\nimport { OrganizationsApi } from \"./api/organizations\";\nimport { PullsApi } from \"./api/pulls\";\nimport { ReleasesApi } from \"./api/releases\";\nimport { RepositoriesApi } from \"./api/repositories\";\nimport { StarsApi } from \"./api/stars\";\nimport { TeamsApi } from \"./api/teams\";\nimport { UsersApi } from \"./api/users\";\nimport { GitVerseClient, type GitVerseClientConfig } from \"./client\";\n\n/**\n * Класс GitVerse, объединяющий все API методы\n *\n * @remarks\n * Для лучшего tree-shaking рекомендуется импортировать напрямую из соответствующих модулей:\n * ```typescript\n * // Вместо\n * import { GitVerse } from 'gitverse-api-sdk';\n * const client = new GitVerse();\n *\n * // Рекомендуется использовать\n * import { RepositoriesApi, GitVerseClient } from 'gitverse-api-sdk/api/repositories';\n * const client = new GitVerseClient();\n * const reposApi = new RepositoriesApi(client);\n * ```\n */\nexport class GitVerse {\n /**\n * Клиент API\n */\n public readonly client: GitVerseClient;\n\n /**\n * API для работы с пользователями\n */\n public readonly users: UsersApi;\n\n /**\n * API для работы с репозиториями\n */\n public readonly repos: RepositoriesApi;\n\n /**\n * API для работы с содержимым репозитория\n */\n public readonly contents: ContentsApi;\n\n /**\n * API для работы с запросами на слияние\n */\n public readonly pulls: PullsApi;\n\n /**\n * API для работы с форками\n */\n public readonly forks: ForksApi;\n\n /**\n * API для работы с email адресами\n */\n public readonly emails: EmailsApi;\n\n /**\n * API для работы с issues\n */\n public readonly issues: IssuesApi;\n\n /**\n * API для работы со звездами\n */\n public readonly stars: StarsApi;\n\n /**\n * API для работы с ветками\n */\n public readonly branches: BranchesApi;\n\n /**\n * API для работы с коммитами\n */\n public readonly commits: CommitsApi;\n\n /**\n * API для работы с коллабораторами\n */\n public readonly collaborators: CollaboratorsApi;\n\n /**\n * API для работы с организациями\n */\n public readonly organizations: OrganizationsApi;\n\n /**\n * API для работы с командами\n */\n public readonly teams: TeamsApi;\n\n /**\n * API для работы с релизами\n */\n public readonly releases: ReleasesApi;\n\n /**\n * API для работы с Git-объектами\n */\n public readonly git: GitApi;\n\n /**\n * API для работы с GitHub Actions\n */\n public readonly actions: ActionsApi;\n\n /**\n * Создает новый экземпляр GitVerse\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.client = new GitVerseClient(config);\n\n this.users = new UsersApi(this.client);\n this.repos = new RepositoriesApi(this.client);\n this.contents = new ContentsApi(this.client);\n this.pulls = new PullsApi(this.client);\n this.forks = new ForksApi(this.client);\n this.emails = new EmailsApi(this.client);\n this.issues = new IssuesApi(this.client);\n this.stars = new StarsApi(this.client);\n this.branches = new BranchesApi(this.client);\n this.commits = new CommitsApi(this.client);\n this.collaborators = new CollaboratorsApi(this.client);\n this.organizations = new OrganizationsApi(this.client);\n this.teams = new TeamsApi(this.client);\n this.releases = new ReleasesApi(this.client);\n this.git = new GitApi(this.client);\n this.actions = new ActionsApi(this.client);\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n * @returns Текущий экземпляр GitVerse\n */\n setToken(token: string): GitVerse {\n this.client.setToken(token);\n return this;\n }\n}\n\n// Экспорт перечислений\nexport
|
|
5
|
+
"import { ActionsApi } from \"./api/actions\";\nimport { BranchesApi } from \"./api/branches\";\nimport { CollaboratorsApi } from \"./api/collaborators\";\nimport { CommitsApi } from \"./api/commits\";\nimport { ContentsApi } from \"./api/contents\";\nimport { EmailsApi } from \"./api/emails\";\nimport { ForksApi } from \"./api/forks\";\nimport { GitApi } from \"./api/git\";\nimport { IssuesApi } from \"./api/issues\";\nimport { OrganizationsApi } from \"./api/organizations\";\nimport { PullsApi } from \"./api/pulls\";\nimport { ReleasesApi } from \"./api/releases\";\nimport { RepositoriesApi } from \"./api/repositories\";\nimport { StarsApi } from \"./api/stars\";\nimport { TeamsApi } from \"./api/teams\";\nimport { UsersApi } from \"./api/users\";\nimport { GitVerseClient, type GitVerseClientConfig } from \"./client\";\n\n/**\n * Класс GitVerse, объединяющий все API методы\n *\n * @remarks\n * Для лучшего tree-shaking рекомендуется импортировать напрямую из соответствующих модулей:\n * ```typescript\n * // Вместо\n * import { GitVerse } from 'gitverse-api-sdk';\n * const client = new GitVerse();\n *\n * // Рекомендуется использовать\n * import { RepositoriesApi, GitVerseClient } from 'gitverse-api-sdk/api/repositories';\n * const client = new GitVerseClient();\n * const reposApi = new RepositoriesApi(client);\n * ```\n */\nexport class GitVerse {\n /**\n * Клиент API\n */\n public readonly client: GitVerseClient;\n\n /**\n * API для работы с пользователями\n */\n public readonly users: UsersApi;\n\n /**\n * API для работы с репозиториями\n */\n public readonly repos: RepositoriesApi;\n\n /**\n * API для работы с содержимым репозитория\n */\n public readonly contents: ContentsApi;\n\n /**\n * API для работы с запросами на слияние\n */\n public readonly pulls: PullsApi;\n\n /**\n * API для работы с форками\n */\n public readonly forks: ForksApi;\n\n /**\n * API для работы с email адресами\n */\n public readonly emails: EmailsApi;\n\n /**\n * API для работы с issues\n */\n public readonly issues: IssuesApi;\n\n /**\n * API для работы со звездами\n */\n public readonly stars: StarsApi;\n\n /**\n * API для работы с ветками\n */\n public readonly branches: BranchesApi;\n\n /**\n * API для работы с коммитами\n */\n public readonly commits: CommitsApi;\n\n /**\n * API для работы с коллабораторами\n */\n public readonly collaborators: CollaboratorsApi;\n\n /**\n * API для работы с организациями\n */\n public readonly organizations: OrganizationsApi;\n\n /**\n * API для работы с командами\n */\n public readonly teams: TeamsApi;\n\n /**\n * API для работы с релизами\n */\n public readonly releases: ReleasesApi;\n\n /**\n * API для работы с Git-объектами\n */\n public readonly git: GitApi;\n\n /**\n * API для работы с GitHub Actions\n */\n public readonly actions: ActionsApi;\n\n /**\n * Создает новый экземпляр GitVerse\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.client = new GitVerseClient(config);\n\n this.users = new UsersApi(this.client);\n this.repos = new RepositoriesApi(this.client);\n this.contents = new ContentsApi(this.client);\n this.pulls = new PullsApi(this.client);\n this.forks = new ForksApi(this.client);\n this.emails = new EmailsApi(this.client);\n this.issues = new IssuesApi(this.client);\n this.stars = new StarsApi(this.client);\n this.branches = new BranchesApi(this.client);\n this.commits = new CommitsApi(this.client);\n this.collaborators = new CollaboratorsApi(this.client);\n this.organizations = new OrganizationsApi(this.client);\n this.teams = new TeamsApi(this.client);\n this.releases = new ReleasesApi(this.client);\n this.git = new GitApi(this.client);\n this.actions = new ActionsApi(this.client);\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n * @returns Текущий экземпляр GitVerse\n */\n setToken(token: string): GitVerse {\n this.client.setToken(token);\n return this;\n }\n}\n\n// Экспорт перечислений\nexport * from \"./enums\";\n// Экспорт классов ошибок\nexport * from \"./errors\";\n// Экспорт типов\nexport type * from \"./types\";\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "w8BAkCO,HAAM,RAAS,VAIJ,HAKA,FAKA,EAKA,MAKA,FAKA,LAKA,NAKA,DAKA,LAKA,FAKA,NAKA,DAKA,DAKA,RAKA,FAKA,NAKA,QAMhB,WAAW,CAAC,EAA+B,CAAC,EAAG,CAC7C,KAAK,OAAS,IAAI,EAAe,CAAM,EAEvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAgB,KAAK,MAAM,EAC5C,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,QAAU,IAAI,EAAW,KAAK,MAAM,EACzC,KAAK,cAAgB,IAAI,EAAiB,KAAK,MAAM,EACrD,KAAK,cAAgB,IAAI,EAAiB,KAAK,MAAM,EACrD,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,IAAM,IAAI,EAAO,KAAK,MAAM,EACjC,KAAK,QAAU,IAAI,EAAW,KAAK,MAAM,EAQ3C,QAAQ,CAAC,EAAyB,CAEhC,OADA,KAAK,OAAO,SAAS,CAAK,EACnB,KAEX",
|
|
8
|
+
"debugId": "E0F5CA15FC5D2DEB64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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
|
|
2
|
+
export{J as x};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=7600D48F459547AA64756E2164756E21
|
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": "
|
|
8
|
+
"debugId": "7600D48F459547AA64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/package.json
CHANGED