gitverse-api-sdk 1.0.0 → 1.1.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.
@@ -0,0 +1,4 @@
1
+ class f{client;constructor(b){this.client=b}get(b,d){return this.client.get(`/repos/${b}/${d}`)}getLanguages(b,d){return this.client.get(`/repos/${b}/${d}/languages`)}listForAuthenticatedUser(){return this.client.get("/user/repos")}create(b){return this.client.post("/user/repos",b)}}export{f as RepositoriesApi};
2
+ export{f as c};
3
+
4
+ //# debugId=60DFB027DF77B52D64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/api/repositories.ts"],
4
+ "sourcesContent": [
5
+ "import type { GitVerseClient } from \"../client\";\nimport type { CreateRepositoryParams, LanguagesResponse, Repository } 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 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"
6
+ ],
7
+ "mappings": "AAMO,MAAM,CAAgB,CACnB,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAShB,GAAG,CAAC,EAAe,EAAmC,CACpD,OAAO,KAAK,OAAO,IAAgB,UAAU,KAAS,GAAM,EAS9D,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": "60DFB027DF77B52D64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,109 @@
1
+ declare const HTTPMethods: {
2
+ readonly DELETE: "DELETE"
3
+ readonly GET: "GET"
4
+ readonly POST: "POST"
5
+ readonly PUT: "PUT"
6
+ };
7
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
8
+ /**
9
+ * Параметры для конфигурации GitVerse клиента
10
+ */
11
+ interface GitVerseClientConfig {
12
+ /**
13
+ * Базовый URL API GitVerse
14
+ * @default 'https://api.gitverse.ru'
15
+ */
16
+ baseUrl?: string;
17
+ /**
18
+ * Токен доступа для авторизации в API
19
+ */
20
+ token?: string;
21
+ /**
22
+ * Версия API
23
+ * @default '1'
24
+ */
25
+ apiVersion?: string;
26
+ }
27
+ /**
28
+ * Основной класс для работы с GitVerse API
29
+ */
30
+ declare class GitVerseClient {
31
+ private baseUrl;
32
+ private token?;
33
+ private apiVersion;
34
+ /**
35
+ * Создает новый экземпляр GitVerse клиента
36
+ * @param config Конфигурация клиента
37
+ */
38
+ constructor(config?: GitVerseClientConfig);
39
+ /**
40
+ * Устанавливает токен авторизации
41
+ * @param token Токен доступа
42
+ */
43
+ setToken(token: string): void;
44
+ /**
45
+ * Выполняет API-запрос с учетом авторизации и версии API
46
+ * @param path Путь к API-ресурсу
47
+ * @param method HTTP-метод
48
+ * @param body Тело запроса (опционально)
49
+ * @returns Ответ от API
50
+ * @throws {Error} Если запрос завершится с ошибкой
51
+ */
52
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
53
+ /**
54
+ * Выполняет GET-запрос
55
+ * @param path Путь к API-ресурсу
56
+ * @returns Ответ от API
57
+ */
58
+ get<T>(path: string): Promise<T>;
59
+ /**
60
+ * Выполняет POST-запрос
61
+ * @param path Путь к API-ресурсу
62
+ * @param body Тело запроса
63
+ * @returns Ответ от API
64
+ */
65
+ post<T>(path: string, body?: unknown): Promise<T>;
66
+ /**
67
+ * Выполняет PUT-запрос
68
+ * @param path Путь к API-ресурсу
69
+ * @param body Тело запроса
70
+ * @returns Ответ от API
71
+ */
72
+ put<T>(path: string, body?: unknown): Promise<T>;
73
+ /**
74
+ * Выполняет DELETE-запрос
75
+ * @param path Путь к API-ресурсу
76
+ * @param body Тело запроса (опционально)
77
+ * @returns Ответ от API
78
+ */
79
+ delete<T>(path: string, body?: unknown): Promise<T>;
80
+ }
81
+ /**
82
+ * Класс для работы со звездами репозиториев
83
+ */
84
+ declare class StarsApi {
85
+ private client;
86
+ constructor(client: GitVerseClient);
87
+ /**
88
+ * Добавить звезду репозиторию
89
+ * @param {string} owner - Владелец репозитория
90
+ * @param {string} repo - Название репозитория
91
+ * @returns {Promise<void>} Результат операции (204 No Content при успехе)
92
+ */
93
+ add(owner: string, repo: string): Promise<void>;
94
+ /**
95
+ * Проверить, отмечен ли репозиторий звездой
96
+ * @param {string} owner - Владелец репозитория
97
+ * @param {string} repo - Название репозитория
98
+ * @returns {Promise<boolean>} true если отмечен звездой, false если нет
99
+ */
100
+ check(owner: string, repo: string): Promise<boolean>;
101
+ /**
102
+ * Убрать звезду с репозитория
103
+ * @param {string} owner - Владелец репозитория
104
+ * @param {string} repo - Название репозитория
105
+ * @returns {Promise<void>} Результат операции
106
+ */
107
+ remove(owner: string, repo: string): Promise<void>;
108
+ }
109
+ export { StarsApi };
@@ -0,0 +1,4 @@
1
+ class h{client;constructor(b){this.client=b}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 Error&&f.message.includes("404"))return!1;throw f}}async remove(b,c){await this.client.delete(`/user/starred/${b}/${c}`)}}export{h as StarsApi};
2
+ export{h as d};
3
+
4
+ //# debugId=E7BD0884732B9EDA64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/api/stars.ts"],
4
+ "sourcesContent": [
5
+ "import type { GitVerseClient } from \"../client\";\n\n/**\n * Класс для работы со звездами репозиториев\n */\nexport class StarsApi {\n constructor(private client: GitVerseClient) {}\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 if (error instanceof Error && error.message.includes(\"404\")) {\n return false;\n }\n throw error;\n }\n }\n\n /**\n * Убрать звезду с репозитория\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @returns {Promise<void>} Результат операции\n */\n async remove(owner: string, repo: string): Promise<void> {\n await this.client.delete<void>(`/user/starred/${owner}/${repo}`);\n }\n}\n"
6
+ ],
7
+ "mappings": "AAKO,MAAM,CAAS,CACA,OAApB,WAAW,CAAS,EAAwB,CAAxB,mBAQd,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,CACvB,GAAI,aAAiB,OAAS,EAAM,QAAQ,SAAS,KAAK,EACxD,MAAO,GAET,MAAM,QAUJ,OAAM,CAAC,EAAe,EAA6B,CACvD,MAAM,KAAK,OAAO,OAAa,iBAAiB,KAAS,GAAM,EAEnE",
8
+ "debugId": "E7BD0884732B9EDA64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,203 @@
1
+ declare const HTTPMethods: {
2
+ readonly DELETE: "DELETE"
3
+ readonly GET: "GET"
4
+ readonly POST: "POST"
5
+ readonly PUT: "PUT"
6
+ };
7
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
8
+ /**
9
+ * Параметры для конфигурации GitVerse клиента
10
+ */
11
+ interface GitVerseClientConfig {
12
+ /**
13
+ * Базовый URL API GitVerse
14
+ * @default 'https://api.gitverse.ru'
15
+ */
16
+ baseUrl?: string;
17
+ /**
18
+ * Токен доступа для авторизации в API
19
+ */
20
+ token?: string;
21
+ /**
22
+ * Версия API
23
+ * @default '1'
24
+ */
25
+ apiVersion?: string;
26
+ }
27
+ /**
28
+ * Основной класс для работы с GitVerse API
29
+ */
30
+ declare class GitVerseClient {
31
+ private baseUrl;
32
+ private token?;
33
+ private apiVersion;
34
+ /**
35
+ * Создает новый экземпляр GitVerse клиента
36
+ * @param config Конфигурация клиента
37
+ */
38
+ constructor(config?: GitVerseClientConfig);
39
+ /**
40
+ * Устанавливает токен авторизации
41
+ * @param token Токен доступа
42
+ */
43
+ setToken(token: string): void;
44
+ /**
45
+ * Выполняет API-запрос с учетом авторизации и версии API
46
+ * @param path Путь к API-ресурсу
47
+ * @param method HTTP-метод
48
+ * @param body Тело запроса (опционально)
49
+ * @returns Ответ от API
50
+ * @throws {Error} Если запрос завершится с ошибкой
51
+ */
52
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
53
+ /**
54
+ * Выполняет GET-запрос
55
+ * @param path Путь к API-ресурсу
56
+ * @returns Ответ от API
57
+ */
58
+ get<T>(path: string): Promise<T>;
59
+ /**
60
+ * Выполняет POST-запрос
61
+ * @param path Путь к API-ресурсу
62
+ * @param body Тело запроса
63
+ * @returns Ответ от API
64
+ */
65
+ post<T>(path: string, body?: unknown): Promise<T>;
66
+ /**
67
+ * Выполняет PUT-запрос
68
+ * @param path Путь к API-ресурсу
69
+ * @param body Тело запроса
70
+ * @returns Ответ от API
71
+ */
72
+ put<T>(path: string, body?: unknown): Promise<T>;
73
+ /**
74
+ * Выполняет DELETE-запрос
75
+ * @param path Путь к API-ресурсу
76
+ * @param body Тело запроса (опционально)
77
+ * @returns Ответ от API
78
+ */
79
+ delete<T>(path: string, body?: unknown): Promise<T>;
80
+ }
81
+ /**
82
+ * Типы пользователей в системе
83
+ */
84
+ declare const UserType: {
85
+ readonly Organization: "Organization"
86
+ readonly User: "User"
87
+ };
88
+ /**
89
+ * Тип для типов пользователей
90
+ */
91
+ type UserType = (typeof UserType)[keyof typeof UserType];
92
+ /**
93
+ * Типы видимости для репозиториев и пользователей
94
+ */
95
+ declare const VisibilityType: {
96
+ readonly Limited: "limited"
97
+ readonly Private: "private"
98
+ readonly Public: "public"
99
+ };
100
+ /**
101
+ * Тип для типов видимости
102
+ */
103
+ type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
104
+ /**
105
+ * Интерфейс пользователя
106
+ */
107
+ interface User2 {
108
+ /** Уникальный идентификатор пользователя */
109
+ id: number;
110
+ /** Имя пользователя */
111
+ name?: string;
112
+ /** Логин пользователя */
113
+ login: string;
114
+ /** Полное имя пользователя */
115
+ full_name?: string;
116
+ /** Тип аккаунта: пользователь или организация */
117
+ type: UserType;
118
+ /** Биография пользователя */
119
+ bio?: string;
120
+ /** Электронная почта пользователя */
121
+ email?: string;
122
+ /** URL аватара пользователя */
123
+ avatar_url: string;
124
+ /** Веб-ссылка на профиль пользователя */
125
+ html_url: string;
126
+ /** API-ссылка на профиль пользователя */
127
+ url?: string;
128
+ /** API-ссылка на список подписчиков пользователя */
129
+ followers_url?: string;
130
+ /** API-ссылка на репозитории пользователя */
131
+ repos_url?: string;
132
+ /** API-ссылка на организации пользователя */
133
+ organizations_url?: string;
134
+ /** Права администратора */
135
+ site_admin: boolean;
136
+ /** Местоположение пользователя */
137
+ location?: string;
138
+ /** Верификация аккаунта */
139
+ is_verified?: boolean;
140
+ /** Настройки приватности профиля */
141
+ visibility?: VisibilityType;
142
+ /** Персональный веб-сайт */
143
+ website?: string;
144
+ /** Количество подписчиков */
145
+ followers?: number;
146
+ /** Количество подписок */
147
+ following?: number;
148
+ /** Количество публичных репозиториев */
149
+ public_repos?: number;
150
+ /** Количество репозиториев, отмеченных звездой */
151
+ stars_count?: number;
152
+ /** Дата создания аккаунта */
153
+ created_at: string;
154
+ /** Дата последнего обновления аккаунта */
155
+ updated_at?: string;
156
+ }
157
+ /**
158
+ * Интерфейс текущего авторизованного пользователя
159
+ * Получается из API метода /user
160
+ */
161
+ interface CurrentUser {
162
+ /** Уникальный идентификатор пользователя */
163
+ id: number;
164
+ /** Имя пользователя (может быть пустым) */
165
+ name?: string;
166
+ /** Логин пользователя */
167
+ login: string;
168
+ /** Электронная почта пользователя (может быть недоступна) */
169
+ email?: string;
170
+ /** URL аватара пользователя */
171
+ avatar_url: string;
172
+ /** Веб-ссылка на профиль пользователя */
173
+ html_url: string;
174
+ /** Количество публичных репозиториев */
175
+ public_repos: number;
176
+ /** Количество подписчиков */
177
+ followers: number;
178
+ /** Дата создания аккаунта */
179
+ created_at: string;
180
+ }
181
+ /**
182
+ * API для работы с пользователями
183
+ */
184
+ declare class UsersApi {
185
+ private client;
186
+ /**
187
+ * Создает новый экземпляр API для работы с пользователями
188
+ * @param client GitVerse клиент
189
+ */
190
+ constructor(client: GitVerseClient);
191
+ /**
192
+ * Получает информацию о текущем авторизованном пользователе
193
+ * @returns Данные о пользователе
194
+ */
195
+ getCurrent(): Promise<CurrentUser>;
196
+ /**
197
+ * Получает информацию о пользователе по имени пользователя
198
+ * @param username Имя пользователя
199
+ * @returns Данные о пользователе
200
+ */
201
+ getByUsername(username: string): Promise<User2>;
202
+ }
203
+ export { UsersApi };
@@ -0,0 +1,4 @@
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 e};
3
+
4
+ //# debugId=3F3DA1741564DA0F64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/api/users.ts"],
4
+ "sourcesContent": [
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
+ ],
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": "3F3DA1741564DA0F64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,81 @@
1
+ declare const HTTPMethods: {
2
+ readonly DELETE: "DELETE"
3
+ readonly GET: "GET"
4
+ readonly POST: "POST"
5
+ readonly PUT: "PUT"
6
+ };
7
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
8
+ /**
9
+ * Параметры для конфигурации GitVerse клиента
10
+ */
11
+ interface GitVerseClientConfig {
12
+ /**
13
+ * Базовый URL API GitVerse
14
+ * @default 'https://api.gitverse.ru'
15
+ */
16
+ baseUrl?: string;
17
+ /**
18
+ * Токен доступа для авторизации в API
19
+ */
20
+ token?: string;
21
+ /**
22
+ * Версия API
23
+ * @default '1'
24
+ */
25
+ apiVersion?: string;
26
+ }
27
+ /**
28
+ * Основной класс для работы с GitVerse API
29
+ */
30
+ declare class GitVerseClient {
31
+ private baseUrl;
32
+ private token?;
33
+ private apiVersion;
34
+ /**
35
+ * Создает новый экземпляр GitVerse клиента
36
+ * @param config Конфигурация клиента
37
+ */
38
+ constructor(config?: GitVerseClientConfig);
39
+ /**
40
+ * Устанавливает токен авторизации
41
+ * @param token Токен доступа
42
+ */
43
+ setToken(token: string): void;
44
+ /**
45
+ * Выполняет API-запрос с учетом авторизации и версии API
46
+ * @param path Путь к API-ресурсу
47
+ * @param method HTTP-метод
48
+ * @param body Тело запроса (опционально)
49
+ * @returns Ответ от API
50
+ * @throws {Error} Если запрос завершится с ошибкой
51
+ */
52
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
53
+ /**
54
+ * Выполняет GET-запрос
55
+ * @param path Путь к API-ресурсу
56
+ * @returns Ответ от API
57
+ */
58
+ get<T>(path: string): Promise<T>;
59
+ /**
60
+ * Выполняет POST-запрос
61
+ * @param path Путь к API-ресурсу
62
+ * @param body Тело запроса
63
+ * @returns Ответ от API
64
+ */
65
+ post<T>(path: string, body?: unknown): Promise<T>;
66
+ /**
67
+ * Выполняет PUT-запрос
68
+ * @param path Путь к API-ресурсу
69
+ * @param body Тело запроса
70
+ * @returns Ответ от API
71
+ */
72
+ put<T>(path: string, body?: unknown): Promise<T>;
73
+ /**
74
+ * Выполняет DELETE-запрос
75
+ * @param path Путь к API-ресурсу
76
+ * @param body Тело запроса (опционально)
77
+ * @returns Ответ от API
78
+ */
79
+ delete<T>(path: string, body?: unknown): Promise<T>;
80
+ }
81
+ export { HTTPMethods, GitVerseClientConfig, GitVerseClient };
package/dist/client.js ADDED
@@ -0,0 +1,4 @@
1
+ var z={DELETE:"DELETE",GET:"GET",POST:"POST",PUT:"PUT"};class J{baseUrl;token;apiVersion;constructor(j={}){this.baseUrl=j.baseUrl||"https://api.gitverse.ru",this.token=j.token,this.apiVersion=j.apiVersion||"1"}setToken(j){this.token=j}async request(j,q,B){let C=new URL(j,this.baseUrl),v=new Headers;if(v.set("Content-Type","application/json"),v.set("Accept",`application/vnd.gitverse+json;version=${this.apiVersion}`),this.token)v.set("Authorization",`Bearer ${this.token}`);let F={body:B?JSON.stringify(B):void 0,headers:v,method:q},w=await fetch(C,F),x;try{x=await w.json()}catch{x=void 0}if(!w.ok){let G=x?.message||w.statusText;throw new Error(`${w.status} ${G}`)}return x}get(j){return this.request(j,z.GET)}post(j,q){return this.request(j,z.POST,q)}put(j,q){return this.request(j,z.PUT,q)}delete(j,q){return this.request(j,z.DELETE,q)}}export{z as HTTPMethods,J as GitVerseClient};
2
+ export{J as f};
3
+
4
+ //# debugId=9A0CB76E81CA21BE64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/client.ts"],
4
+ "sourcesContent": [
5
+ "// В этом файле больше не используем типы ApiError\n\nimport type { ApiError } from \"./types\";\n\nexport const HTTPMethods = {\n DELETE: \"DELETE\",\n GET: \"GET\",\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 * Создает новый экземпляр 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 * Выполняет API-запрос с учетом авторизации и версии API\n * @param path Путь к API-ресурсу\n * @param method HTTP-метод\n * @param body Тело запроса (опционально)\n * @returns Ответ от API\n * @throws {Error} Если запрос завершится с ошибкой\n */\n async request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T> {\n const url = new URL(path, this.baseUrl);\n\n const headers = new Headers();\n\n headers.set(\"Content-Type\", \"application/json\");\n headers.set(\"Accept\", `application/vnd.gitverse+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 let data: unknown;\n try {\n data = await response.json();\n } catch {\n data = undefined;\n }\n if (!response.ok) {\n const error = data as ApiError | undefined;\n const errorMessage = error?.message || response.statusText;\n throw new Error(`${response.status} ${errorMessage}`);\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"
6
+ ],
7
+ "mappings": "AAIO,IAAM,EAAc,CACzB,OAAQ,SACR,IAAK,MACL,KAAM,OACN,IAAK,KACP,EA6BO,MAAM,CAAe,CAClB,QACA,MACA,WAMR,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,OAWT,QAAU,CAAC,EAAc,EAAqB,EAA4B,CAC9E,IAAM,EAAM,IAAI,IAAI,EAAM,KAAK,OAAO,EAEhC,EAAU,IAAI,QAKpB,GAHA,EAAQ,IAAI,eAAgB,kBAAkB,EAC9C,EAAQ,IAAI,SAAU,yCAAyC,KAAK,YAAY,EAE5E,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,EACrC,EACJ,GAAI,CACF,EAAO,MAAM,EAAS,KAAK,EAC3B,KAAM,CACN,EAAO,OAET,IAAK,EAAS,GAAI,CAEhB,IAAM,EADQ,GACc,SAAW,EAAS,WAChD,MAAM,IAAI,MAAM,GAAG,EAAS,UAAU,GAAc,EAGtD,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,EAEzD",
8
+ "debugId": "9A0CB76E81CA21BE64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Типы пользователей в системе
3
+ */
4
+ declare const UserType: {
5
+ readonly Organization: "Organization"
6
+ readonly User: "User"
7
+ };
8
+ /**
9
+ * Тип для типов пользователей
10
+ */
11
+ type UserType = (typeof UserType)[keyof typeof UserType];
12
+ /**
13
+ * Типы видимости для репозиториев и пользователей
14
+ */
15
+ declare const VisibilityType: {
16
+ readonly Limited: "limited"
17
+ readonly Private: "private"
18
+ readonly Public: "public"
19
+ };
20
+ /**
21
+ * Тип для типов видимости
22
+ */
23
+ type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
24
+ /**
25
+ * Типы содержимого в репозитории
26
+ */
27
+ declare const ContentType: {
28
+ readonly Directory: "dir"
29
+ readonly File: "file"
30
+ };
31
+ /**
32
+ * Тип для типов содержимого
33
+ */
34
+ type ContentType = (typeof ContentType)[keyof typeof ContentType];
35
+ /**
36
+ * Состояния pull request
37
+ */
38
+ declare const PullRequestState: {
39
+ readonly Closed: "closed"
40
+ readonly Open: "open"
41
+ };
42
+ /**
43
+ * Тип для состояний pull request
44
+ */
45
+ type PullRequestState = (typeof PullRequestState)[keyof typeof PullRequestState];
46
+ /**
47
+ * Состояния issue
48
+ */
49
+ declare const IssueState: {
50
+ readonly Closed: "closed"
51
+ readonly Open: "open"
52
+ };
53
+ /**
54
+ * Тип для состояний issue
55
+ */
56
+ type IssueState = (typeof IssueState)[keyof typeof IssueState];
57
+ export { VisibilityType, UserType, PullRequestState, IssueState, ContentType };
package/dist/enums.js ADDED
@@ -0,0 +1,3 @@
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"};export{b as VisibilityType,a as UserType,d as PullRequestState,f as IssueState,c as ContentType};
2
+
3
+ //# debugId=9571BC5358CD8C1B64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/enums.ts"],
4
+ "sourcesContent": [
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"
6
+ ],
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",
8
+ "debugId": "9571BC5358CD8C1B64756E2164756E21",
9
+ "names": []
10
+ }