gitverse-api-sdk 2.0.0 → 2.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.
@@ -1,4 +1,4 @@
1
1
  class c{client;constructor(b){this.client=b}list(){return this.client.get("/user/emails")}add(b){return this.client.post("/user/emails",b)}remove(b){return this.client.delete("/user/emails",b)}}export{c as EmailsApi};
2
- export{c as y};
2
+ export{c as z};
3
3
 
4
- //# debugId=6DE1EE65561D6E5D64756E2164756E21
4
+ //# debugId=1FE313BCACDA9D3264756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import type { GitVerseClient } from \"../client\";\nimport type { AddEmailParams, Email, EmailOperationResponse, RemoveEmailParams } 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(): Promise<Email[]> {\n return this.client.get<Email[]>(\"/user/emails\");\n }\n\n /**\n * Добавить email адреса к аккаунту пользователя\n * @param {AddEmailParams} params - Параметры для добавления email\n * @returns {Promise<EmailOperationResponse>} Результат операции\n */\n add(params: AddEmailParams): Promise<EmailOperationResponse> {\n return this.client.post<EmailOperationResponse>(\"/user/emails\", params);\n }\n\n /**\n * Удалить email адреса из аккаунта пользователя\n * @param {RemoveEmailParams} params - Параметры для удаления email\n * @returns {Promise<EmailOperationResponse>} Результат операции\n */\n remove(params: RemoveEmailParams): Promise<EmailOperationResponse> {\n return this.client.delete<EmailOperationResponse>(\"/user/emails\", params);\n }\n}\n"
6
6
  ],
7
7
  "mappings": "AAMO,MAAM,CAAU,CACD,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,EAAqB,CACvB,OAAO,KAAK,OAAO,IAAa,cAAc,EAQhD,GAAG,CAAC,EAAyD,CAC3D,OAAO,KAAK,OAAO,KAA6B,eAAgB,CAAM,EAQxE,MAAM,CAAC,EAA4D,CACjE,OAAO,KAAK,OAAO,OAA+B,eAAgB,CAAM,EAE5E",
8
- "debugId": "6DE1EE65561D6E5D64756E2164756E21",
8
+ "debugId": "1FE313BCACDA9D3264756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/api/forks.js CHANGED
@@ -1,4 +1,4 @@
1
- class g{client;constructor(b){this.client=b}create(b,d,f){return this.client.post(`/repos/${b}/${d}/forks`,f)}}export{g as ForksApi};
2
- export{g as n};
1
+ import{u as d}from"../utils.js";class k{client;constructor(b){this.client=b}async create(b,g,h){let j=await this.client.post(`/repos/${b}/${g}/forks`,h);return d(j)}}export{k as ForksApi};
2
+ export{k as n};
3
3
 
4
- //# debugId=D08A809708FA35D364756E2164756E21
4
+ //# debugId=2E98DE40FBCEC5CA64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/api/forks.ts"],
4
4
  "sourcesContent": [
5
- "import type { GitVerseClient } from \"../client\";\nimport type { CreateForkParams, Repository } from \"../types\";\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 create(owner: string, repo: string, params?: CreateForkParams): Promise<Repository> {\n return this.client.post<Repository>(`/repos/${owner}/${repo}/forks`, params);\n }\n}\n"
5
+ "import type { GitVerseClient } from \"../client\";\nimport type { CreateForkParams, Repository } 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): Promise<Repository> {\n const repository = await this.client.post<Repository>(`/repos/${owner}/${repo}/forks`, params);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n}\n"
6
6
  ],
7
- "mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAUhB,MAAM,CAAC,EAAe,EAAc,EAAgD,CAClF,OAAO,KAAK,OAAO,KAAiB,UAAU,KAAS,UAAc,CAAM,EAE/E",
8
- "debugId": "D08A809708FA35D364756E2164756E21",
7
+ "mappings": "gCAOO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,OAUV,OAAM,CAAC,EAAe,EAAc,EAAgD,CACxF,IAAM,EAAa,MAAM,KAAK,OAAO,KAAiB,UAAU,KAAS,UAAc,CAAM,EAC7F,OAAO,EAAkB,CAAgD,EAE7E",
8
+ "debugId": "2E98DE40FBCEC5CA64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- class k{client;constructor(f){this.client=f}get(f,g){return this.client.get(`/repos/${f}/${g}`)}delete(f,g){return this.client.delete(`/repos/${f}/${g}`)}update(f,g,j){return this.client.patch(`/repos/${f}/${g}`,j)}compare(f,g,j){return this.client.get(`/repos/${f}/${g}/compare/${j}`)}getLanguages(f,g){return this.client.get(`/repos/${f}/${g}/languages`)}listForAuthenticatedUser(){return this.client.get("/user/repos")}create(f){return this.client.post("/user/repos",f)}}export{k as RepositoriesApi};
2
- export{k as g};
1
+ import{u as q}from"../utils.js";class z{client;constructor(g){this.client=g}async get(g,j){let k=await this.client.get(`/repos/${g}/${j}`);return q(k)}delete(g,j){return this.client.delete(`/repos/${g}/${j}`)}async update(g,j,k){let v=await this.client.patch(`/repos/${g}/${j}`,k);return q(v)}compare(g,j,k){return this.client.get(`/repos/${g}/${j}/compare/${k}`)}getLanguages(g,j){return this.client.get(`/repos/${g}/${j}/languages`)}async listForAuthenticatedUser(){return(await this.client.get("/user/repos")).map((j)=>q(j))}async create(g){let j=await this.client.post("/user/repos",g);return q(j)}}export{z as RepositoriesApi};
2
+ export{z as g};
3
3
 
4
- //# debugId=0E93FD5F40DD639F64756E2164756E21
4
+ //# debugId=0CF25CF34B70341F64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/api/repositories.ts"],
4
4
  "sourcesContent": [
5
- "import type { GitVerseClient } from \"../client\";\nimport type {\n CompareResponse,\n CreateRepositoryParams,\n LanguagesResponse,\n Repository,\n UpdateRepositoryParams,\n} from \"../types\";\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 get(owner: string, repo: string): Promise<Repository> {\n return this.client.get<Repository>(`/repos/${owner}/${repo}`);\n }\n\n /**\n * Удаляет репозиторий\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Результат операции\n */\n delete(owner: string, repo: string): Promise<void> {\n return this.client.delete<void>(`/repos/${owner}/${repo}`);\n }\n\n /**\n * Обновляет информацию о репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры для обновления\n * @returns Обновлённый репозиторий\n */\n update(owner: string, repo: string, params: UpdateRepositoryParams): Promise<Repository> {\n return this.client.patch<Repository>(`/repos/${owner}/${repo}`, params);\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): Promise<CompareResponse> {\n return this.client.get<CompareResponse>(`/repos/${owner}/${repo}/compare/${basehead}`);\n }\n\n /**\n * Получает информацию о языках программирования в репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Объект с языками и количеством байт кода\n */\n getLanguages(owner: string, repo: string): Promise<LanguagesResponse> {\n return this.client.get<LanguagesResponse>(`/repos/${owner}/${repo}/languages`);\n }\n\n /**\n * Получает список репозиториев авторизованного пользователя\n * @returns Массив репозиториев пользователя\n */\n listForAuthenticatedUser(): Promise<Repository[]> {\n return this.client.get<Repository[]>(\"/user/repos\");\n }\n\n /**\n * Создает новый репозиторий для авторизованного пользователя\n * @param params Параметры создания репозитория\n * @returns Созданный репозиторий\n */\n create(params: CreateRepositoryParams): Promise<Repository> {\n return this.client.post<Repository>(\"/user/repos\", params);\n }\n}\n"
5
+ "import type { GitVerseClient } from \"../client\";\nimport type {\n CompareResponse,\n CreateRepositoryParams,\n LanguagesResponse,\n Repository,\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): Promise<Repository> {\n const repository = await this.client.get<Repository>(`/repos/${owner}/${repo}`);\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): Promise<void> {\n return this.client.delete<void>(`/repos/${owner}/${repo}`);\n }\n\n /**\n * Обновляет информацию о репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры для обновления\n * @returns Обновлённый репозиторий\n */\n async update(owner: string, repo: string, params: UpdateRepositoryParams): Promise<Repository> {\n const repository = await this.client.patch<Repository>(`/repos/${owner}/${repo}`, params);\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): Promise<CompareResponse> {\n return this.client.get<CompareResponse>(`/repos/${owner}/${repo}/compare/${basehead}`);\n }\n\n /**\n * Получает информацию о языках программирования в репозитории\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @returns Объект с языками и количеством байт кода\n */\n getLanguages(owner: string, repo: string): Promise<LanguagesResponse> {\n return this.client.get<LanguagesResponse>(`/repos/${owner}/${repo}/languages`);\n }\n\n /**\n * Получает список репозиториев авторизованного пользователя\n * @returns Массив репозиториев пользователя\n */\n async listForAuthenticatedUser(): Promise<Repository[]> {\n const repositories = await this.client.get<Repository[]>(\"/user/repos\");\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): Promise<Repository> {\n const repository = await this.client.post<Repository>(\"/user/repos\", params);\n return fixRepositoryUrls(repository as unknown as Record<string, unknown>) as unknown as Repository;\n }\n}\n"
6
6
  ],
7
- "mappings": "AAYO,MAAM,CAAgB,CACnB,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAShB,GAAG,CAAC,EAAe,EAAmC,CACpD,OAAO,KAAK,OAAO,IAAgB,UAAU,KAAS,GAAM,EAS9D,MAAM,CAAC,EAAe,EAA6B,CACjD,OAAO,KAAK,OAAO,OAAa,UAAU,KAAS,GAAM,EAU3D,MAAM,CAAC,EAAe,EAAc,EAAqD,CACvF,OAAO,KAAK,OAAO,MAAkB,UAAU,KAAS,IAAQ,CAAM,EAUxE,OAAO,CAAC,EAAe,EAAc,EAA4C,CAC/E,OAAO,KAAK,OAAO,IAAqB,UAAU,KAAS,aAAgB,GAAU,EASvF,YAAY,CAAC,EAAe,EAA0C,CACpE,OAAO,KAAK,OAAO,IAAuB,UAAU,KAAS,aAAgB,EAO/E,wBAAwB,EAA0B,CAChD,OAAO,KAAK,OAAO,IAAkB,aAAa,EAQpD,MAAM,CAAC,EAAqD,CAC1D,OAAO,KAAK,OAAO,KAAiB,cAAe,CAAM,EAE7D",
8
- "debugId": "0E93FD5F40DD639F64756E2164756E21",
7
+ "mappings": "gCAaO,MAAM,CAAgB,CACnB,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,OASV,IAAG,CAAC,EAAe,EAAmC,CAC1D,IAAM,EAAa,MAAM,KAAK,OAAO,IAAgB,UAAU,KAAS,GAAM,EAC9E,OAAO,EAAkB,CAAgD,EAS3E,MAAM,CAAC,EAAe,EAA6B,CACjD,OAAO,KAAK,OAAO,OAAa,UAAU,KAAS,GAAM,OAUrD,OAAM,CAAC,EAAe,EAAc,EAAqD,CAC7F,IAAM,EAAa,MAAM,KAAK,OAAO,MAAkB,UAAU,KAAS,IAAQ,CAAM,EACxF,OAAO,EAAkB,CAAgD,EAU3E,OAAO,CAAC,EAAe,EAAc,EAA4C,CAC/E,OAAO,KAAK,OAAO,IAAqB,UAAU,KAAS,aAAgB,GAAU,EASvF,YAAY,CAAC,EAAe,EAA0C,CACpE,OAAO,KAAK,OAAO,IAAuB,UAAU,KAAS,aAAgB,OAOzE,yBAAwB,EAA0B,CAEtD,OADqB,MAAM,KAAK,OAAO,IAAkB,aAAa,GAClD,IAClB,CAAC,IAAS,EAAkB,CAA0C,CACxE,OAQI,OAAM,CAAC,EAAqD,CAChE,IAAM,EAAa,MAAM,KAAK,OAAO,KAAiB,cAAe,CAAM,EAC3E,OAAO,EAAkB,CAAgD,EAE7E",
8
+ "debugId": "0CF25CF34B70341F64756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/api/stars.js CHANGED
@@ -1,4 +1,4 @@
1
- import{u as h}from"../errors.js";class j{client;constructor(b){this.client=b}list(){return this.client.get("/user/starred")}async add(b,c){await this.client.put(`/user/starred/${b}/${c}`)}async check(b,c){try{return await this.client.get(`/user/starred/${b}/${c}`),!0}catch(f){if(f instanceof h&&f.status===404)return!1;throw f}}async remove(b,c){await this.client.delete(`/user/starred/${b}/${c}`)}}export{j as StarsApi};
1
+ import{v as h}from"../errors.js";class j{client;constructor(b){this.client=b}list(){return this.client.get("/user/starred")}async add(b,c){await this.client.put(`/user/starred/${b}/${c}`)}async check(b,c){try{return await this.client.get(`/user/starred/${b}/${c}`),!0}catch(f){if(f instanceof h&&f.status===404)return!1;throw f}}async remove(b,c){await this.client.delete(`/user/starred/${b}/${c}`)}}export{j as StarsApi};
2
2
  export{j as d};
3
3
 
4
- //# debugId=957D1B7B77093AA464756E2164756E21
4
+ //# debugId=EA86658A9ECD454B64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import type { GitVerseClient } from \"../client\";\nimport { GitVerseApiError } from \"../errors\";\nimport type { Repository } from \"../types\";\n\n/**\n * Класс для работы со звездами репозиториев\n */\nexport class StarsApi {\n constructor(private client: GitVerseClient) {}\n\n /**\n * Получить список репозиториев, отмеченных звездой\n * @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой\n */\n list(): Promise<Repository[]> {\n return this.client.get<Repository[]>(\"/user/starred\");\n }\n\n /**\n * Добавить звезду репозиторию\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции (204 No Content при успехе)\n */\n async add(owner: string, repo: string): Promise<void> {\n await this.client.put<void>(`/user/starred/${owner}/${repo}`);\n }\n\n /**\n * Проверить, отмечен ли репозиторий звездой\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<boolean>} true если отмечен звездой, false если нет\n */\n async check(owner: string, repo: string): Promise<boolean> {\n try {\n await this.client.get<void>(`/user/starred/${owner}/${repo}`);\n return true;\n } catch (error: unknown) {\n // 404 означает, что репозиторий не отмечен звездой\n if (error instanceof GitVerseApiError && error.status === 404) {\n return false;\n }\n throw error;\n }\n }\n\n /**\n * Убрать звезду с репозитория\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции\n */\n async remove(owner: string, repo: string): Promise<void> {\n await this.client.delete<void>(`/user/starred/${owner}/${repo}`);\n }\n}\n"
6
6
  ],
7
7
  "mappings": "iCAOO,MAAM,CAAS,CACA,OAApB,WAAW,CAAS,EAAwB,CAAxB,cAMpB,IAAI,EAA0B,CAC5B,OAAO,KAAK,OAAO,IAAkB,eAAe,OAShD,IAAG,CAAC,EAAe,EAA6B,CACpD,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,GAAM,OASxD,MAAK,CAAC,EAAe,EAAgC,CACzD,GAAI,CAEF,OADA,MAAM,KAAK,OAAO,IAAU,iBAAiB,KAAS,GAAM,EACrD,GACP,MAAO,EAAgB,CAEvB,GAAI,aAAiB,GAAoB,EAAM,SAAW,IACxD,MAAO,GAET,MAAM,QAUJ,OAAM,CAAC,EAAe,EAA6B,CACvD,MAAM,KAAK,OAAO,OAAa,iBAAiB,KAAS,GAAM,EAEnE",
8
- "debugId": "957D1B7B77093AA464756E2164756E21",
8
+ "debugId": "EA86658A9ECD454B64756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/api/users.js CHANGED
@@ -1,4 +1,4 @@
1
1
  class d{client;constructor(b){this.client=b}getCurrent(){return this.client.get("/user")}getByUsername(b){return this.client.get(`/users/${b}`)}}export{d as UsersApi};
2
- export{d as x};
2
+ export{d as y};
3
3
 
4
- //# debugId=BA5DF27C9A156B5764756E2164756E21
4
+ //# debugId=E77D801B99FD164A64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import type { GitVerseClient } from \"../client\";\nimport type { CurrentUser, User } from \"../types\";\n\n/**\n * API для работы с пользователями\n */\nexport class UsersApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с пользователями\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Получает информацию о текущем авторизованном пользователе\n * @returns Данные о пользователе\n */\n getCurrent(): Promise<CurrentUser> {\n return this.client.get<CurrentUser>(\"/user\");\n }\n\n /**\n * Получает информацию о пользователе по имени пользователя\n * @param username Имя пользователя\n * @returns Данные о пользователе\n */\n getByUsername(username: string): Promise<User> {\n return this.client.get<User>(`/users/${username}`);\n }\n}\n"
6
6
  ],
7
7
  "mappings": "AAMO,MAAM,CAAS,CACZ,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAOhB,UAAU,EAAyB,CACjC,OAAO,KAAK,OAAO,IAAiB,OAAO,EAQ7C,aAAa,CAAC,EAAiC,CAC7C,OAAO,KAAK,OAAO,IAAU,UAAU,GAAU,EAErD",
8
- "debugId": "BA5DF27C9A156B5764756E2164756E21",
8
+ "debugId": "E77D801B99FD164A64756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/client.js CHANGED
@@ -1,4 +1,4 @@
1
- import{u as Q,v as S,w as U}from"./errors.js";var F={DELETE:"DELETE",GET:"GET",PATCH:"PATCH",POST:"POST",PUT:"PUT"};class Y{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 q=j.get("GitVerse-RateLimit-Limit"),x=j.get("GitVerse-RateLimit-Remaining"),z=j.get("GitVerse-RateLimit-Retry-After"),B=j.get("Gitverse-Ratelimit-Reset");if(!(q&&x&&z&&B))return;return{limit:Number.parseInt(q,10),remaining:Number.parseInt(x,10),reset:Number.parseInt(B,10),retryAfter:Number.parseInt(z,10)}}extractApiVersionInfo(j){let q=j.get("Gitverse-Api-Version"),x=j.get("Gitverse-Api-Latest-Version"),z=j.get("Gitverse-Api-Deprecation")==="true",B=j.get("Gitverse-Api-Decommissioning");if(!(q&&x))return;return{decommissioning:B||void 0,deprecated:z,latestVersion:x,version:q}}extractMetadata(j){let q=this.extractRateLimitInfo(j),x=this.extractApiVersionInfo(j);if(x?.deprecated&&this.onApiVersionWarning){let z=new U(x.version,x.latestVersion,x.decommissioning);this.onApiVersionWarning(z)}return{apiVersion:x,rateLimit:q}}async request(j,q,x){let z=j.startsWith("/")?j.slice(1):j,B=`${this.baseUrl}/${z}`,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 X={body:x?JSON.stringify(x):void 0,headers:J,method:q},D=await fetch(B,X),K=this.extractMetadata(D.headers),N;try{N=await D.json()}catch{N=void 0}if(!D.ok){let O=N?.message||D.statusText;if(D.status===429&&K.rateLimit)throw new S(O||"Превышен лимит запросов. Попробуйте позже.",K.rateLimit,K);throw new Q(D.status,O,K)}return N}get(j){return this.request(j,F.GET)}post(j,q){return this.request(j,F.POST,q)}put(j,q){return this.request(j,F.PUT,q)}delete(j,q){return this.request(j,F.DELETE,q)}patch(j,q){return this.request(j,F.PATCH,q)}}export{F as HTTPMethods,Y as GitVerseClient};
1
+ import{v as Q,w as S,x as U}from"./errors.js";var F={DELETE:"DELETE",GET:"GET",PATCH:"PATCH",POST:"POST",PUT:"PUT"};class Y{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 q=j.get("GitVerse-RateLimit-Limit"),x=j.get("GitVerse-RateLimit-Remaining"),z=j.get("GitVerse-RateLimit-Retry-After"),B=j.get("Gitverse-Ratelimit-Reset");if(!(q&&x&&z&&B))return;return{limit:Number.parseInt(q,10),remaining:Number.parseInt(x,10),reset:Number.parseInt(B,10),retryAfter:Number.parseInt(z,10)}}extractApiVersionInfo(j){let q=j.get("Gitverse-Api-Version"),x=j.get("Gitverse-Api-Latest-Version"),z=j.get("Gitverse-Api-Deprecation")==="true",B=j.get("Gitverse-Api-Decommissioning");if(!(q&&x))return;return{decommissioning:B||void 0,deprecated:z,latestVersion:x,version:q}}extractMetadata(j){let q=this.extractRateLimitInfo(j),x=this.extractApiVersionInfo(j);if(x?.deprecated&&this.onApiVersionWarning){let z=new U(x.version,x.latestVersion,x.decommissioning);this.onApiVersionWarning(z)}return{apiVersion:x,rateLimit:q}}async request(j,q,x){let z=j.startsWith("/")?j.slice(1):j,B=`${this.baseUrl}/${z}`,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 X={body:x?JSON.stringify(x):void 0,headers:J,method:q},D=await fetch(B,X),K=this.extractMetadata(D.headers),N;try{N=await D.json()}catch{N=void 0}if(!D.ok){let O=N?.message||D.statusText;if(D.status===429&&K.rateLimit)throw new S(O||"Превышен лимит запросов. Попробуйте позже.",K.rateLimit,K);throw new Q(D.status,O,K)}return N}get(j){return this.request(j,F.GET)}post(j,q){return this.request(j,F.POST,q)}put(j,q){return this.request(j,F.PUT,q)}delete(j,q){return this.request(j,F.DELETE,q)}patch(j,q){return this.request(j,F.PATCH,q)}}export{F as HTTPMethods,Y as GitVerseClient};
2
2
  export{Y as o};
3
3
 
4
- //# debugId=13122ADA45B36DC764756E2164756E21
4
+ //# debugId=3C1435E422FBD05064756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import { ApiVersionWarning, GitVerseApiError, RateLimitError } from \"./errors\";\nimport type { ApiError, ApiResponseMetadata, ApiVersionInfo, RateLimitInfo } from \"./types\";\n\nexport const HTTPMethods = {\n DELETE: \"DELETE\",\n GET: \"GET\",\n PATCH: \"PATCH\",\n POST: \"POST\",\n PUT: \"PUT\",\n} as const;\n\nexport type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];\n\n/**\n * Параметры для конфигурации GitVerse клиента\n */\nexport interface GitVerseClientConfig {\n /**\n * Базовый URL API GitVerse\n * @default 'https://api.gitverse.ru'\n */\n baseUrl?: string;\n\n /**\n * Токен доступа для авторизации в API\n */\n token?: string;\n\n /**\n * Версия API\n * @default '1'\n */\n apiVersion?: string;\n}\n\n/**\n * Основной класс для работы с GitVerse API\n */\nexport class GitVerseClient {\n private baseUrl: string;\n private token?: string;\n private apiVersion: string;\n\n /**\n * Callback для обработки предупреждений об устаревшей версии API\n */\n public onApiVersionWarning?: (warning: ApiVersionWarning) => void;\n\n /**\n * Создает новый экземпляр GitVerse клиента\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.baseUrl = config.baseUrl || \"https://api.gitverse.ru\";\n this.token = config.token;\n this.apiVersion = config.apiVersion || \"1\";\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n */\n setToken(token: string): void {\n this.token = token;\n }\n\n /**\n * Извлекает информацию о Rate Limit из заголовков ответа\n */\n private extractRateLimitInfo(headers: Headers): RateLimitInfo | undefined {\n const limit = headers.get(\"GitVerse-RateLimit-Limit\");\n const remaining = headers.get(\"GitVerse-RateLimit-Remaining\");\n const retryAfter = headers.get(\"GitVerse-RateLimit-Retry-After\");\n const reset = headers.get(\"Gitverse-Ratelimit-Reset\");\n\n if (!(limit && remaining && retryAfter && reset)) {\n return;\n }\n\n return {\n limit: Number.parseInt(limit, 10),\n remaining: Number.parseInt(remaining, 10),\n reset: Number.parseInt(reset, 10),\n retryAfter: Number.parseInt(retryAfter, 10),\n };\n }\n\n /**\n * Извлекает информацию о версии API из заголовков ответа\n */\n private extractApiVersionInfo(headers: Headers): ApiVersionInfo | undefined {\n const version = headers.get(\"Gitverse-Api-Version\");\n const latestVersion = headers.get(\"Gitverse-Api-Latest-Version\");\n const deprecated = headers.get(\"Gitverse-Api-Deprecation\") === \"true\";\n const decommissioning = headers.get(\"Gitverse-Api-Decommissioning\");\n\n if (!(version && latestVersion)) {\n return;\n }\n\n return {\n decommissioning: decommissioning || undefined,\n deprecated,\n latestVersion,\n version,\n };\n }\n\n /**\n * Извлекает метаданные из заголовков ответа\n */\n private extractMetadata(headers: Headers): ApiResponseMetadata {\n const rateLimit = this.extractRateLimitInfo(headers);\n const apiVersion = this.extractApiVersionInfo(headers);\n\n // Проверяем устаревшую версию API и вызываем callback\n if (apiVersion?.deprecated && this.onApiVersionWarning) {\n const warning = new ApiVersionWarning(apiVersion.version, apiVersion.latestVersion, apiVersion.decommissioning);\n this.onApiVersionWarning(warning);\n }\n\n return {\n apiVersion,\n rateLimit,\n };\n }\n\n /**\n * Выполняет API-запрос с учетом авторизации и версии API\n * @param path Путь к API-ресурсу\n * @param method HTTP-метод\n * @param body Тело запроса (опционально)\n * @returns Ответ от API\n * @throws {RateLimitError} При превышении лимита запросов (429)\n * @throws {GitVerseApiError} При других ошибках API\n */\n async request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T> {\n // Правильная конкатенация URL: убираем начальный / из path если он есть\n const cleanPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const url = `${this.baseUrl}/${cleanPath}`;\n\n const headers = new Headers();\n\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"Accept\", `application/vnd.gitverse.object+json; version=${this.apiVersion}`);\n\n if (this.token) {\n headers.set(\"Authorization\", `Bearer ${this.token}`);\n }\n\n const options: RequestInit = {\n body: body ? JSON.stringify(body) : undefined,\n headers,\n method,\n };\n\n const response = await fetch(url, options);\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 * @returns Ответ от API\n */\n get<T>(path: string): Promise<T> {\n return this.request<T>(path, HTTPMethods.GET);\n }\n\n /**\n * Выполняет POST-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @returns Ответ от API\n */\n post<T>(path: string, body?: unknown): Promise<T> {\n return this.request<T>(path, HTTPMethods.POST, body);\n }\n\n /**\n * Выполняет PUT-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @returns Ответ от API\n */\n put<T>(path: string, body?: unknown): Promise<T> {\n return this.request<T>(path, HTTPMethods.PUT, body);\n }\n\n /**\n * Выполняет DELETE-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса (опционально)\n * @returns Ответ от API\n */\n delete<T>(path: string, body?: unknown): Promise<T> {\n return this.request<T>(path, HTTPMethods.DELETE, body);\n }\n\n /**\n * Выполняет PATCH-запрос\n * @param path Путь к API-ресурсу\n * @param body Тело запроса\n * @returns Ответ от API\n */\n patch<T>(path: string, body?: unknown): Promise<T> {\n return this.request<T>(path, HTTPMethods.PATCH, body);\n }\n}\n"
6
6
  ],
7
7
  "mappings": "8CAGO,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,OAYI,QAAU,CAAC,EAAc,EAAqB,EAA4B,CAE9E,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,EAAuB,CAC3B,KAAM,EAAO,KAAK,UAAU,CAAI,EAAI,OACpC,UACA,QACF,EAEM,EAAW,MAAM,MAAM,EAAK,CAAO,EAGnC,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,EAQT,GAAM,CAAC,EAA0B,CAC/B,OAAO,KAAK,QAAW,EAAM,EAAY,GAAG,EAS9C,IAAO,CAAC,EAAc,EAA4B,CAChD,OAAO,KAAK,QAAW,EAAM,EAAY,KAAM,CAAI,EASrD,GAAM,CAAC,EAAc,EAA4B,CAC/C,OAAO,KAAK,QAAW,EAAM,EAAY,IAAK,CAAI,EASpD,MAAS,CAAC,EAAc,EAA4B,CAClD,OAAO,KAAK,QAAW,EAAM,EAAY,OAAQ,CAAI,EASvD,KAAQ,CAAC,EAAc,EAA4B,CACjD,OAAO,KAAK,QAAW,EAAM,EAAY,MAAO,CAAI,EAExD",
8
- "debugId": "13122ADA45B36DC764756E2164756E21",
8
+ "debugId": "3C1435E422FBD05064756E2164756E21",
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 u,k as v,q as w};
2
+ export{j as v,k as w,q as x};
3
3
 
4
- //# debugId=FE75CA9902C3ED1B64756E2164756E21
4
+ //# debugId=244FAF075E55BD6464756E2164756E21
@@ -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": "FE75CA9902C3ED1B64756E2164756E21",
8
+ "debugId": "244FAF075E55BD6464756E2164756E21",
9
9
  "names": []
10
10
  }
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 B,q as E,r as F,s as I,t as O}from"./enums.js";import{u as Z,v as _,w as $}from"./errors.js";import{x as Y}from"./api/users.js";import{y as D}from"./api/emails.js";class P{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{E as VisibilityType,B as UserType,_ as RateLimitError,I as PullRequestState,O as IssueState,Z as GitVerseApiError,P as GitVerse,F as ContentType,$ as ApiVersionWarning};
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 B,q as E,r as F,s as I,t as O}from"./enums.js";import"./utils.js";import{v as Z,w as _,x as $}from"./errors.js";import{y as Y}from"./api/users.js";import{z as D}from"./api/emails.js";class P{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{E as VisibilityType,B as UserType,_ as RateLimitError,I as PullRequestState,O as IssueState,Z as GitVerseApiError,P as GitVerse,F as ContentType,$ as ApiVersionWarning};
2
2
 
3
- //# debugId=022A96FF7CE7866764756E2164756E21
3
+ //# debugId=1FDA74B2231FF3F964756E2164756E21
package/dist/index.js.map CHANGED
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
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 { ContentType, IssueState, PullRequestState, UserType, VisibilityType } from \"./enums\";\n// Экспорт классов ошибок\nexport { ApiVersionWarning, GitVerseApiError, RateLimitError } from \"./errors\";\n// Экспорт типов\nexport type {\n ApiResponseMetadata,\n ApiVersionInfo,\n Branch,\n Commit,\n Content,\n CurrentUser,\n Issue,\n PullRequest,\n RateLimitInfo,\n Release,\n Repository,\n Team,\n User,\n} from \"./types\";\n"
6
6
  ],
7
- "mappings": "i5BAkCO,HAAM,RAAS,VAIJ,HAKA,FAKA,EAKA,MAKA,FAKA,LAKA,NAKA,DAKA,LAKA,FAKA,NAKA,DAKA,AAKA,LAKA,DAKA,IAKA,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": "022A96FF7CE7866764756E2164756E21",
7
+ "mappings": "m7BAkCO,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": "1FDA74B2231FF3F964756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/utils.d.ts CHANGED
@@ -36,4 +36,33 @@ declare function parseFileContent(fileContent: {
36
36
  content?: string
37
37
  encoding?: string
38
38
  });
39
- export { updateFileParams, parseFileContent, encodeBase64, decodeBase64, createFileParams };
39
+ /**
40
+ * Исправляет дублированный домен в URL (workaround для бага GitVerse API)
41
+ *
42
+ * Проблема: API иногда возвращает URL вида:
43
+ * `https://gitverse.ru/https://gitverse.ru/owner/repo.git`
44
+ *
45
+ * Эта функция исправляет такие URL на корректный вид:
46
+ * `https://gitverse.ru/owner/repo.git`
47
+ *
48
+ * @param url URL для исправления
49
+ * @returns Исправленный URL
50
+ *
51
+ * @see https://gitverse.ru/RainyPixel/gitverse-sdk/issues/XXX - ссылка на issue об этом баге
52
+ */
53
+ declare function fixDuplicatedUrl(url: string): string;
54
+ /**
55
+ * Исправляет дублированные URL в объекте Repository (workaround для бага GitVerse API)
56
+ *
57
+ * Применяет fixDuplicatedUrl ко всем URL-полям репозитория:
58
+ * - clone_url
59
+ * - html_url
60
+ * - url
61
+ * - git_url
62
+ * - mirror_url
63
+ *
64
+ * @param repo Объект репозитория
65
+ * @returns Репозиторий с исправленными URL
66
+ */
67
+ declare function fixRepositoryUrls<T extends Record<string, unknown>>(repo: T): T;
68
+ export { updateFileParams, parseFileContent, fixRepositoryUrls, fixDuplicatedUrl, encodeBase64, decodeBase64, createFileParams };
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
- var y=/^[A-Za-z0-9+/=]+$/;function q(j){return Buffer.from(j).toString("base64")}function z(j){return Buffer.from(j,"base64").toString("utf-8")}function A(j,k,p){return{branch:p,content:q(j),message:k}}function D(j,k,p,w){return{branch:w,content:q(j),message:p,sha:k}}function E(j){if(!j.content)return"";if(j.encoding==="base64"){let k=j.content;if(!y.test(k))return k;try{return z(k)}catch{return k}}return j.content}export{D as updateFileParams,E as parseFileContent,q as encodeBase64,z as decodeBase64,A as createFileParams};
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 u};
2
3
 
3
- //# debugId=39E36F952DA251F364756E2164756E21
4
+ //# debugId=F1BB6E2CA5D979A564756E2164756E21
package/dist/utils.js.map CHANGED
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/utils.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Вспомогательные утилиты для работы с GitVerse API\n */\n\nconst base64Regex = /^[A-Za-z0-9+/=]+$/;\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"
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/issues/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
- "mappings": "AAIA,IAAM,EAAc,oBAOb,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",
8
- "debugId": "39E36F952DA251F364756E2164756E21",
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": "F1BB6E2CA5D979A564756E2164756E21",
9
9
  "names": []
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitverse-api-sdk",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Полнофункциональный TypeScript SDK для GitVerse API с поддержкой всех эндпоинтов, обработкой Rate Limits и версионирования",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -129,8 +129,8 @@
129
129
  },
130
130
  "homepage": "https://gitverse.ru/rainypixel/gitverse-sdk#readme",
131
131
  "devDependencies": {
132
- "@aryzing/bun-mock-fetch": "^1.0.2",
133
- "@biomejs/biome": "^2.2.6",
132
+ "@aryzing/bun-mock-fetch": "^1.1.0",
133
+ "@biomejs/biome": "^2.3.2",
134
134
  "@semantic-release/changelog": "^6.0.3",
135
135
  "@semantic-release/exec": "^7.1.0",
136
136
  "@semantic-release/git": "^10.0.1",
@@ -138,10 +138,10 @@
138
138
  "bun-bagel": "^1.2.0",
139
139
  "bun-dts": "^0.1.70",
140
140
  "bun-plugin-dts": "^0.3.0",
141
- "conventional-changelog-conventionalcommits": "7",
142
- "lefthook": "^2.0.0",
143
- "semantic-release": "22",
144
- "typescript": "^5.8.3"
141
+ "conventional-changelog-conventionalcommits": "^7.0.2",
142
+ "lefthook": "^2.0.2",
143
+ "semantic-release": "^22.0.12",
144
+ "typescript": "^5.9.3"
145
145
  },
146
146
  "publishConfig": {
147
147
  "access": "public"