gitverse-api-sdk 5.0.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +112 -7
  2. package/dist/api/actions.d.ts +313 -520
  3. package/dist/api/actions.js +3 -3
  4. package/dist/api/actions.js.map +3 -3
  5. package/dist/api/emails.d.ts +41 -206
  6. package/dist/api/emails.js +2 -2
  7. package/dist/api/emails.js.map +1 -1
  8. package/dist/api/issues.d.ts +100 -480
  9. package/dist/api/issues.js +2 -2
  10. package/dist/api/issues.js.map +1 -1
  11. package/dist/api/organizations.d.ts +67 -228
  12. package/dist/api/organizations.js +2 -2
  13. package/dist/api/organizations.js.map +1 -1
  14. package/dist/api/pages.d.ts +35 -0
  15. package/dist/api/pages.js +4 -0
  16. package/dist/api/pages.js.map +10 -0
  17. package/dist/api/pulls.d.ts +75 -520
  18. package/dist/api/pulls.js +2 -2
  19. package/dist/api/pulls.js.map +1 -1
  20. package/dist/api/releases.d.ts +135 -384
  21. package/dist/api/releases.js +2 -2
  22. package/dist/api/releases.js.map +1 -1
  23. package/dist/api/repositories.d.ts +354 -1067
  24. package/dist/api/repositories.js +2 -2
  25. package/dist/api/repositories.js.map +3 -3
  26. package/dist/api/stars.d.ts +55 -272
  27. package/dist/api/stars.js +2 -2
  28. package/dist/api/stars.js.map +1 -1
  29. package/dist/api/teams.d.ts +51 -288
  30. package/dist/api/teams.js +2 -2
  31. package/dist/api/teams.js.map +1 -1
  32. package/dist/api/users.d.ts +52 -263
  33. package/dist/api/users.js +2 -2
  34. package/dist/api/users.js.map +1 -1
  35. package/dist/client.d.ts +118 -150
  36. package/dist/client.js +2 -2
  37. package/dist/client.js.map +1 -1
  38. package/dist/enums.d.ts +47 -48
  39. package/dist/enums.js +2 -2
  40. package/dist/enums.js.map +1 -1
  41. package/dist/errors.d.ts +39 -73
  42. package/dist/errors.js +2 -2
  43. package/dist/errors.js.map +1 -1
  44. package/dist/index.d.ts +54 -2373
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +3 -3
  47. package/dist/types.d.ts +1028 -880
  48. package/dist/utils.d.ts +72 -61
  49. package/package.json +1 -3
package/README.md CHANGED
@@ -3,15 +3,15 @@
3
3
  [![npm version](https://img.shields.io/npm/v/gitverse-api-sdk.svg)](https://www.npmjs.com/package/gitverse-api-sdk)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  [![Test Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](https://gitverse.ru/rainypixel/gitverse-sdk)
6
- [![GitVerse API](https://img.shields.io/badge/GitVerse%20API-v1.1-blue.svg)](https://gitverse.ru)
6
+ [![GitVerse API](https://img.shields.io/badge/GitVerse%20API-v1.2-blue.svg)](https://gitverse.ru)
7
7
 
8
8
  Полнофункциональный TypeScript SDK для GitVerse API с поддержкой всех эндпоинтов, обработкой Rate Limits и версионирования.
9
9
 
10
- > **Совместимость:** SDK синхронизирован с GitVerse OpenAPI v1.1 от 15.01.2026
10
+ > **Совместимость:** SDK синхронизирован с GitVerse OpenAPI v1.2
11
11
 
12
12
  ## Ключевые особенности
13
13
 
14
- - ✅ **Полное покрытие API** — Все эндпоинты GitVerse OpenAPI v1.1
14
+ - ✅ **Полное покрытие API** — Все эндпоинты GitVerse OpenAPI v1.2
15
15
  - ✅ **Rate Limits** — Автоматическая обработка лимитов запросов
16
16
  - ✅ **Версионирование API** — Предупреждения об устаревших версиях
17
17
  - ✅ **Специализированные ошибки** — `RateLimitError`, `ApiVersionWarning`
@@ -272,16 +272,121 @@ await client.actions.deleteRepoVariable('owner', 'repo', 'VAR');
272
272
 
273
273
  ## Обработка ошибок
274
274
 
275
+ SDK экспортирует три класса для обработки ошибок и предупреждений:
276
+
277
+ ### GitVerseApiError
278
+
279
+ Базовый класс ошибки API. Выбрасывается при любой HTTP ошибке (4xx, 5xx).
280
+
275
281
  ```typescript
276
- import { GitVerse, GitVerseApiError, RateLimitError } from 'gitverse-api-sdk';
282
+ import { GitVerse, GitVerseApiError } from 'gitverse-api-sdk';
283
+
284
+ try {
285
+ await client.repos.get('owner', 'repo');
286
+ } catch (error) {
287
+ if (error instanceof GitVerseApiError) {
288
+ console.error(`API Error ${error.status}: ${error.message}`);
289
+
290
+ // Метаданные ответа (если доступны)
291
+ if (error.metadata?.requestId) {
292
+ console.error(`Request ID: ${error.metadata.requestId}`);
293
+ }
294
+ }
295
+ }
296
+ ```
297
+
298
+ **Свойства:**
299
+ - `status: number` — HTTP статус код (401, 403, 404, 500 и т.д.)
300
+ - `message: string` — Текст ошибки
301
+ - `metadata?: ApiResponseMetadata` — Метаданные ответа (requestId, rateLimit, apiVersion)
302
+
303
+ ### RateLimitError
304
+
305
+ Наследует `GitVerseApiError`. Выбрасывается при превышении лимита запросов (429).
306
+
307
+ ```typescript
308
+ import { GitVerse, RateLimitError } from 'gitverse-api-sdk';
277
309
 
278
310
  try {
279
311
  await client.repos.get('owner', 'repo');
280
312
  } catch (error) {
281
313
  if (error instanceof RateLimitError) {
282
- console.error('Rate limit:', error.rateLimit);
283
- } else if (error instanceof GitVerseApiError) {
284
- console.error(`API Error ${error.status}:`, error.message);
314
+ console.error(`Rate limit exceeded!`);
315
+ console.error(`Limit: ${error.rateLimit.limit}`);
316
+ console.error(`Remaining: ${error.rateLimit.remaining}`);
317
+ console.error(`Retry after: ${error.getRetryAfterSeconds()}s`);
318
+ console.error(`Reset at: ${error.getResetDate().toISOString()}`);
319
+ }
320
+ }
321
+ ```
322
+
323
+ **Свойства:**
324
+ - `rateLimit.limit: number` — Максимальное количество запросов
325
+ - `rateLimit.remaining: number` — Оставшееся количество запросов
326
+ - `rateLimit.reset: number` — Unix timestamp сброса лимита
327
+ - `rateLimit.retryAfter: number` — Секунд до сброса лимита
328
+
329
+ **Методы:**
330
+ - `getRetryAfterSeconds(): number` — Количество секунд до сброса
331
+ - `getResetDate(): Date` — Дата/время сброса лимита
332
+
333
+ ### ApiVersionWarning
334
+
335
+ Предупреждение об устаревшей версии API. Не является ошибкой, передаётся через callback.
336
+
337
+ ```typescript
338
+ import { GitVerse, ApiVersionWarning } from 'gitverse-api-sdk';
339
+
340
+ const client = new GitVerse({
341
+ token: 'your-token',
342
+ onApiVersionWarning: (warning: ApiVersionWarning) => {
343
+ console.warn(warning.getMessage());
344
+ console.warn(`Current: ${warning.currentVersion}`);
345
+ console.warn(`Latest: ${warning.latestVersion}`);
346
+ if (warning.decommissioning) {
347
+ console.warn(`Decommissioning: ${warning.decommissioning}`);
348
+ }
349
+ }
350
+ });
351
+ ```
352
+
353
+ **Свойства:**
354
+ - `currentVersion: string` — Текущая используемая версия
355
+ - `latestVersion: string` — Последняя доступная версия
356
+ - `decommissioning?: string` — Дата вывода из эксплуатации
357
+
358
+ **Методы:**
359
+ - `getMessage(): string` — Форматированное сообщение о предупреждении
360
+
361
+ ### Пример полной обработки
362
+
363
+ ```typescript
364
+ import { GitVerse, GitVerseApiError, RateLimitError } from 'gitverse-api-sdk';
365
+
366
+ async function fetchRepo(owner: string, repo: string) {
367
+ try {
368
+ return await client.repos.get(owner, repo);
369
+ } catch (error) {
370
+ if (error instanceof RateLimitError) {
371
+ // Ждём и повторяем
372
+ await new Promise(r => setTimeout(r, error.getRetryAfterSeconds() * 1000));
373
+ return fetchRepo(owner, repo);
374
+ }
375
+
376
+ if (error instanceof GitVerseApiError) {
377
+ switch (error.status) {
378
+ case 401:
379
+ throw new Error('Invalid token');
380
+ case 403:
381
+ throw new Error('Access denied');
382
+ case 404:
383
+ return null; // Репозиторий не найден
384
+ default:
385
+ throw error;
386
+ }
387
+ }
388
+
389
+ throw error;
285
390
  }
286
391
  }
287
392
  ```