Skip to content

Releases: theDesConnet/AnixartJS

v1.1.0 - New endpoints

Choose a tag to compare

@theDesConnet theDesConnet released this 19 Oct 10:43

Changelog

Добавлено

  • Поддержка новых методов API Anixart 10.5.

  • Новые методы управления значками профиля:

    • profileBadge.list() — получение категорий, последних и закреплённых значков профиля.
    • profileBadge.section() — получение значков определённой категории с пагинацией.
    • profileBadge.pinToShowcase() — закрепление значка в витрине профиля.
    • profileBadge.unpinFromShowcase() — удаление значка из витрины.
    • profileBadge.reorderShowcase() — изменение порядка значков в витрине.
  • Новая группа эндпоинтов achievement:

    • achievement.preview() — предварительная информация о достижении по коду.
    • achievement.get() — получение достижения по коду.
  • Новые методы существующих эндпоинтов:

    • release.badges() — получение значков, связанных с релизом.
    • channel.delete() — удаление собственного канала.
    • notification.delete(DeleteNotificationType.Article) — удаление уведомления о публикации статьи.
    • profilePreference.deleteLoginHistory() — очистка истории изменения логина.
  • Новые модели для системы значков и достижений:

    • IBadgeCategory
    • IBadgeAward
    • IBadgeSection
    • IProfileBadgeSectionsResponse
    • IProfileBadgePageableResponse
    • IProfileBadgeResponse
    • IProfileBadgeShowcaseResponse
    • IReorderBadgeShowcaseRequest
    • IAchievementPreview
    • IAchievementPreviewResponse
    • IAchievementResponse
  • Новые enum'ы результатов API:

    • AchievementResult
    • ProfileBadgeShowcaseResult
    • ChannelDeleteResult
  • Добавлены дополнительные поля значков в моделях профилей и релизов:

    • badge_count
    • badges_preview

Изменено

  • Обновлена модель IBadge в соответствии с новой системой значков Anixart 10.5:

    • Добавлены категории, описания и редкость значков.
    • Добавлена информация об условиях получения достижений.
    • Добавлен процент пользователей, владеющих значком.
    • Добавлены признаки владения, выбора, закрепления и доступности значков.
    • Добавлены дополнительные URL изображений значков.
  • Изменён тип ответа profileBadge.edit():

    • Вместо общего IResponse используется IProfileBadgeResponse.
    • Ответ теперь типизирован с учётом объекта badge.
  • Расширена модель IChannel:

    • badge_id
    • badge_name
    • badge_type
    • badge_url
    • last_article_date
  • Исправлена типизация IProfileArticleNotification:

    • Поле article теперь использует IArticleCompact вместо числового идентификатора.
    • Убраны поля, не соответствующие модели ответа API.
  • Обновлены типы результатов и коды ошибок для новых методов управления значками, достижениями и каналами.

  • Новая группа achievement зарегистрирована в client.endpoints.

Устаревшие методы

  • profileBadge.all() помечен как @deprecated.
    • Вместо него рекомендуется использовать profileBadge.list() и profileBadge.section().
    • Старый метод сохранён для обратной совместимости.

Полный список изменений: v1.0.0...v1.1.0

v1.0.0 - Major changes

Choose a tag to compare

@theDesConnet theDesConnet released this 09 Sep 13:13
a2d6a87

Changelog

Important

AnixartJS v1.0.0 содержит значительные несовместимые изменения и не полностью совместима с версиями v0.x.

Структура проекта и публичный API были существенно переработаны. Если ваш проект использует AnixartJS v0.x, перед обновлением рекомендуется изучить изменения ниже и заранее заложить дополнительное время на миграцию и тестирование.

Добавлено

  • Новая структура проекта:
    • api — реализация эндпоинтов
    • core — клиент, HTTP-транспорт и ошибки
    • models — типы и enum'ы API
    • utils — билдеры, парсеры и вспомогательные утилиты
  • Новый endpoint-based API через client.endpoints.*.
  • Новые группы эндпоинтов для:
    • комментариев к статьям и предложений статей
    • комментариев к коллекциям, избранных коллекций и пользовательских коллекций
    • настроек уведомлений
    • бейджей профиля, блокировок, удаления аккаунта, друзей, health-состояния, списков, настроек, голосов за релизы и ролей
    • эпизодов релизов, избранного, фильтров, истории, связанных релизов, комментариев, стриминговых платформ, видео, жалоб на видео и избранных видео
    • жалоб, импорта, экспорта и других разделов API
  • Новый HTTP-клиент с поддержкой:
    • GET, POST, PUT, DELETE, PATCH, HEAD и OPTIONS
    • JSON, URL-encoded и multipart-запросов
    • авторизации через токен Anixart и Bearer-токен
    • пользовательских заголовков и собственного base URL
  • Новые параметры запросов:
    • timeoutMs
    • signal
    • apiVersion
    • throwOnAnixartError
  • Новые классы ошибок:
    • AnixartError
    • HttpError
  • Новые параметры конфигурации клиента:
    • userAgent
    • throwOnAnixartError
  • Добавлены setToken(), getBaseUrl() и setBaseUrl().
  • Добавлена полноценная документация на базе VitePress и TypeDoc.
  • Добавлены руководства по авторизации, параметрам запросов, обработке ошибок и пагинации.
  • Добавлены готовые примеры для авторизации, поиска, профилей, закладок, создания статей и парсинга ссылок.
  • Добавлен парсер HLS master playlist.

Изменено

  • Полностью переработана внутренняя архитектура AnixartJS.
  • Публичный API теперь строится вокруг client.endpoints.* вместо high-level методов класса Anixart.
  • Реализация эндпоинтов разделена на отдельные классы по функциональным областям.
  • Изменён процесс авторизации:
    • для входа используется client.endpoints.auth.signIn(...)
    • полученный токен устанавливается через client.setToken(...)
  • Полностью переработаны модели данных.
  • Модели теперь ближе соответствуют оригинальным ответам API Anixart.
  • Имена полей могут отличаться от v0.x и использовать API-style формат, например title_ru.
  • Выполнение запросов перенесено со старого client.call() на новый HttpClient.
  • Ошибки API теперь могут выбрасываться как типизированные исключения AnixartError.
  • Стандартный API endpoint изменён с https://api-s.anixsekai.com на https://api.anixsekai.com.
  • Обновлён стандартный User-Agent Anixart.
  • Переработаны экспорты пакета: из основного entrypoint теперь доступны новые модели, параметры запросов, ошибки и утилиты.
  • Обновлены TypeScript и типы Node.js.
  • Упрощены build-скрипты и добавлен test:typecheck.

Удалено / Breaking Changes

  • Удалён старый high-level API класса Anixart, включая:
    • getChannelById()
    • getProfileById()
    • getLatestFeed()
    • getRandomRelease()
    • getArticleById()
    • getReleaseById()
    • getCollectionById()
    • getFavoriteCollections()
    • getAllCollections()
    • login()
    • call()
  • Удалён старый подход с wrapper-классами для релизов, профилей, статей, каналов и коллекций.
  • Код из v0.x, который напрямую использовал изменяемые поля клиента или методы wrapper-классов, необходимо адаптировать под новый API клиента и эндпоинтов.
  • Код, завязанный на старые имена полей моделей, типы результатов или helper-методы, потребует изменений.

Миграция с v0.x

Старый код на v0.x:

const anixart = new Anixart({});

const release = await anixart.getReleaseById(101, true);

if (release) {
  console.log(release.titleRu);
}

Новый API в v1.0.0:

const client = new Anixart({});

const { release } = await client.endpoints.release.get(
  101,
  true,
  { timeoutMs: 15_000 }
);

console.log(release.title_ru);

Авторизация также изменилась.

Раньше:

await client.login(username, password);

Теперь:

const result = await client.endpoints.auth.signIn({
  login: username,
  password
});

client.setToken(result.profileToken?.token);

При миграции существующего проекта с v0.x рекомендуется отдельно проверить:

  • вызовы старых helper-методов Anixart
  • процесс авторизации
  • модели и имена полей
  • обработку ошибок
  • работу с токеном
  • импортируемые типы и enum'ы
  • код, завязанный на старые wrapper-классы сущностей

Рекомендуется сначала протестировать переход в отдельной ветке и только после этого обновлять зависимость в production-проекте.

Полный список изменений: v0.1.8...v1.0.0

v0.1.8 - New parsers

Choose a tag to compare

@theDesConnet theDesConnet released this 19 Apr 12:57
81b81b2

Changelog

Added

  • New endpoints
    • Profile: [getHealthStatus, getEnforcementContent, getEnforcementAccount, getEnforcement, getArticleComments]
    • Channel: [editPinnedArticle, articleEvent, articleMute]
  • New types
    • Channel: [IArticleEventRequest, ArticleEditPinnedResult]
    • Profile: [ICommentPreview, IHealthStatusResponse, IProfileEnforcement, IEditEnforcement, IEditEnforcementChange, IExpiringEnforcement, IProfileEnforcementResponse]
  • New parsers: [RutubeParser, VKVideoParser, OKParser]

Changed

  • Update type IProfile
  • Removed unused imports from LinkParser

v0.1.7 - Bugfix

Choose a tag to compare

@theDesConnet theDesConnet released this 21 Mar 11:11
55e9ed1

Changelog

Fixed

v0.1.6 - Bugfix

Choose a tag to compare

@theDesConnet theDesConnet released this 01 Feb 16:01
491b563

Changelog

Added

  • Added new types in notification

Fixed

v0.1.5 - Bugfix

Choose a tag to compare

@theDesConnet theDesConnet released this 21 Dec 09:57
72f1e4b

Changelog

Fixed

  • Fix bug with filter request #16

v0.1.3 - Update types

Choose a tag to compare

@theDesConnet theDesConnet released this 14 Dec 10:27
2f97e94

Changelog

Changed

  • add voted_at to IVoteRelease
  • change author info in IArticle

v0.1.2 - Fix AnilibriaParser

Choose a tag to compare

@theDesConnet theDesConnet released this 02 Dec 12:51
a04c40d

Changes

  • Add param is_signed to IArticleCreateRequest and ArticleBuilder

Fixes

  • Fix AniLibriaParser

v0.1.1 - Endpoints info

Choose a tag to compare

@theDesConnet theDesConnet released this 03 Nov 10:37
50a54a3

Changelog

Added

  • Add documentations in endpoints [Profile, Feed, Auth, Search, Discover]
  • New endpoints
    • Channel: [createBlog, getChannelBlockProfile, getChannelRecommendations, managePermissionChannel, getChannelPermissions]
    • Profile: [getLastFriendRequests, getBlocklist]
    • Collections: [getRandomRelease]
    • Settings: [editBadge, removeBadge]
    • Notification: [getArticleNotifications]
  • New types
    • Channel: [IChannelPermissionManageRequest, IArticleSearchRequest, IFeedSearchResponse]
    • Profile: [IProfileChannel]
    • Notification: [IArticleNotification]
    • Release: [IReleasesInBookmarksSearchRequest]
  • New endpoint class Search (all search methods moved here)

Changed

  • [addToBlocklist, removeFromBlocklist] methods moved from Settings to Profile
  • [BlocklistAddResult] enum moved from Settings to Profile
  • Change path in getBadges endpoint

v0.1.0 - Enums for errors

Choose a tag to compare

@theDesConnet theDesConnet released this 20 Oct 11:23
8eae24f

Changelog

Added

  • Enums for errors
  • New endpoints
    Profile: [getSocials, getUnvotedReleases, getRoleProfiles, exportBookmarks],
    Release: [getEpisodeUpdates]
  • New types (ILastEpisodeUpdate, IExportBookmarksResponse, IExportRelease)

Changed

  • Rename method from getVotesReleases to getVotedReleases