ani-client 2.0.2 → 2.1.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.
- package/README.md +7 -0
- package/dist/index.d.mts +88 -7
- package/dist/index.d.ts +88 -7
- package/dist/index.js +280 -49
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +280 -50
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
- **Rate-limit protection** with exponential backoff, retries, and custom strategies
|
|
23
23
|
- **Request deduplication** — concurrent identical queries share a single in-flight request
|
|
24
24
|
- **Batch queries** — fetch up to 50 media/characters/staff in one API call
|
|
25
|
+
- **Paginated media relationships** — `getMediaCharacters()` and `getMediaStaff()` support paged results for large casts and staff listings
|
|
25
26
|
- **Auto-pagination** — async iterator that yields items across pages
|
|
26
27
|
- **AbortSignal support** — cancel globally or per-request with `withSignal()`
|
|
27
28
|
- **Injectable logger** — plug in `console`, pino, winston, or any compatible logger
|
|
@@ -58,6 +59,10 @@ const results = await client.searchMedia({
|
|
|
58
59
|
|
|
59
60
|
// Cross-platform lookup by MyAnimeList ID
|
|
60
61
|
const fma = await client.getMediaByMalId(5114);
|
|
62
|
+
|
|
63
|
+
// Paginated media relationships
|
|
64
|
+
const characters = await client.getMediaCharacters(1, { page: 1, perPage: 25, voiceActors: true });
|
|
65
|
+
const staff = await client.getMediaStaff(1, { page: 1, perPage: 25 });
|
|
61
66
|
```
|
|
62
67
|
|
|
63
68
|
## Features at a glance
|
|
@@ -134,6 +139,8 @@ for await (const anime of client.paginate(
|
|
|
134
139
|
const user = await client.getUser("AniList");
|
|
135
140
|
const favs = await client.getUserFavorites("AniList", { perPage: 50 });
|
|
136
141
|
const char = await client.getCharacter(1, { voiceActors: true });
|
|
142
|
+
const characters = await client.getMediaCharacters(1, { page: 1, perPage: 25, voiceActors: true });
|
|
143
|
+
const staff = await client.getMediaStaff(1, { page: 1, perPage: 25 });
|
|
137
144
|
const studio = await client.getStudio(21, { media: { perPage: 50 } });
|
|
138
145
|
const schedule = await client.getWeeklySchedule();
|
|
139
146
|
```
|
package/dist/index.d.mts
CHANGED
|
@@ -59,7 +59,7 @@ interface CacheOptions {
|
|
|
59
59
|
}
|
|
60
60
|
/** Rate limiter configuration options. */
|
|
61
61
|
interface RateLimitOptions {
|
|
62
|
-
/** Max requests per window (default:
|
|
62
|
+
/** Max requests per window (default: 25) */
|
|
63
63
|
maxRequests?: number;
|
|
64
64
|
/** Window size in ms (default: 60 000) */
|
|
65
65
|
windowMs?: number;
|
|
@@ -603,7 +603,7 @@ declare enum MediaRelationType {
|
|
|
603
603
|
}
|
|
604
604
|
interface MediaEdge {
|
|
605
605
|
relationType: MediaRelationType;
|
|
606
|
-
node: Pick<Media, "id" | "title" | "type" | "format" | "status" | "startDate" | "endDate" | "season" | "seasonYear" | "episodes" | "chapters" | "volumes" | "coverImage" | "genres" | "averageScore" | "studios" | "siteUrl" | "nextAiringEpisode">;
|
|
606
|
+
node: Pick<Media, "id" | "title" | "type" | "format" | "status" | "startDate" | "endDate" | "season" | "seasonYear" | "episodes" | "chapters" | "volumes" | "coverImage" | "genres" | "averageScore" | "meanScore" | "studios" | "siteUrl" | "nextAiringEpisode">;
|
|
607
607
|
}
|
|
608
608
|
interface MediaConnection {
|
|
609
609
|
edges: MediaEdge[];
|
|
@@ -644,7 +644,7 @@ interface MediaStats {
|
|
|
644
644
|
interface MediaRecommendationNode {
|
|
645
645
|
id: number;
|
|
646
646
|
rating: number | null;
|
|
647
|
-
mediaRecommendation: Pick<Media, "id" | "title" | "type" | "format" | "coverImage" | "averageScore" | "siteUrl">;
|
|
647
|
+
mediaRecommendation: Pick<Media, "id" | "title" | "type" | "format" | "coverImage" | "averageScore" | "meanScore" | "episodes" | "chapters" | "volumes" | "nextAiringEpisode" | "season" | "seasonYear" | "startDate" | "endDate" | "studios" | "genres" | "siteUrl">;
|
|
648
648
|
}
|
|
649
649
|
interface NextAiringEpisode {
|
|
650
650
|
id: number;
|
|
@@ -727,6 +727,8 @@ interface SearchMediaOptions {
|
|
|
727
727
|
tagsExclude?: string[];
|
|
728
728
|
/** Include or Exclude explicit content (default: false) */
|
|
729
729
|
isAdult?: boolean;
|
|
730
|
+
/** Exclude certain media entries by ID */
|
|
731
|
+
idNotIn?: number[];
|
|
730
732
|
/** Sort order */
|
|
731
733
|
sort?: MediaSort[];
|
|
732
734
|
/** Page number */
|
|
@@ -739,6 +741,8 @@ interface GeneralMediaQueryOptions {
|
|
|
739
741
|
type?: MediaType;
|
|
740
742
|
/** Include or Exclude explicit content (default: false) */
|
|
741
743
|
isAdult?: boolean;
|
|
744
|
+
/** Exclude certain media entries by ID */
|
|
745
|
+
idNotIn?: number[];
|
|
742
746
|
/** Page number */
|
|
743
747
|
page?: number;
|
|
744
748
|
/** Results per page (max 50) */
|
|
@@ -749,8 +753,8 @@ interface GetAiringOptions {
|
|
|
749
753
|
airingAtGreater?: number;
|
|
750
754
|
/** Only show episodes that aired before this UNIX timestamp */
|
|
751
755
|
airingAtLesser?: number;
|
|
752
|
-
/**
|
|
753
|
-
|
|
756
|
+
/** Exclude certain media entries by ID */
|
|
757
|
+
idNotIn?: number[];
|
|
754
758
|
/** Sort order (default: TIME_DESC) */
|
|
755
759
|
sort?: AiringSort[];
|
|
756
760
|
/** Page number */
|
|
@@ -761,6 +765,8 @@ interface GetAiringOptions {
|
|
|
761
765
|
interface GetRecentChaptersOptions {
|
|
762
766
|
/** Include or Exclude explicit content (default: false) */
|
|
763
767
|
isAdult?: boolean;
|
|
768
|
+
/** Exclude certain media entries by ID */
|
|
769
|
+
idNotIn?: number[];
|
|
764
770
|
/** Page number (default: 1) */
|
|
765
771
|
page?: number;
|
|
766
772
|
/** Results per page (default: 20, max 50) */
|
|
@@ -771,6 +777,8 @@ interface GetPlanningOptions {
|
|
|
771
777
|
type?: MediaType;
|
|
772
778
|
/** Include or Exclude explicit content (default: false) */
|
|
773
779
|
isAdult?: boolean;
|
|
780
|
+
/** Exclude certain media entries by ID */
|
|
781
|
+
idNotIn?: number[];
|
|
774
782
|
/** Sort order (default: POPULARITY_DESC) */
|
|
775
783
|
sort?: MediaSort[];
|
|
776
784
|
/** Page number */
|
|
@@ -814,6 +822,8 @@ interface GetSeasonOptions {
|
|
|
814
822
|
type?: MediaType;
|
|
815
823
|
/** Allow or disallow explicit content (defaults to False) */
|
|
816
824
|
isAdult?: boolean;
|
|
825
|
+
/** Exclude certain media entries by ID */
|
|
826
|
+
idNotIn?: number[];
|
|
817
827
|
/** Sort order (default: POPULARITY_DESC) */
|
|
818
828
|
sort?: MediaSort[];
|
|
819
829
|
/** Page number */
|
|
@@ -852,6 +862,24 @@ interface MediaIncludeOptions {
|
|
|
852
862
|
perPage?: number;
|
|
853
863
|
};
|
|
854
864
|
}
|
|
865
|
+
interface GetMediaCharactersOptions {
|
|
866
|
+
/** Page number */
|
|
867
|
+
page?: number;
|
|
868
|
+
/** Results per page (max 50) */
|
|
869
|
+
perPage?: number;
|
|
870
|
+
/** Disable default sort order */
|
|
871
|
+
sort?: boolean;
|
|
872
|
+
/** Include voice actors for each character edge */
|
|
873
|
+
voiceActors?: boolean;
|
|
874
|
+
}
|
|
875
|
+
interface GetMediaStaffOptions {
|
|
876
|
+
/** Page number */
|
|
877
|
+
page?: number;
|
|
878
|
+
/** Results per page (max 50) */
|
|
879
|
+
perPage?: number;
|
|
880
|
+
/** Disable default sort order */
|
|
881
|
+
sort?: boolean;
|
|
882
|
+
}
|
|
855
883
|
interface AiringSchedule {
|
|
856
884
|
id: number;
|
|
857
885
|
airingAt: number;
|
|
@@ -924,6 +952,44 @@ interface SearchCharacterOptions {
|
|
|
924
952
|
voiceActors?: boolean;
|
|
925
953
|
}
|
|
926
954
|
|
|
955
|
+
declare enum ReviewSort {
|
|
956
|
+
ID = "ID",
|
|
957
|
+
ID_DESC = "ID_DESC",
|
|
958
|
+
SCORE = "SCORE",
|
|
959
|
+
SCORE_DESC = "SCORE_DESC",
|
|
960
|
+
RATING = "RATING",
|
|
961
|
+
RATING_DESC = "RATING_DESC",
|
|
962
|
+
CREATED_AT = "CREATED_AT",
|
|
963
|
+
CREATED_AT_DESC = "CREATED_AT_DESC",
|
|
964
|
+
UPDATED_AT = "UPDATED_AT",
|
|
965
|
+
UPDATED_AT_DESC = "UPDATED_AT_DESC"
|
|
966
|
+
}
|
|
967
|
+
interface Review {
|
|
968
|
+
id: number;
|
|
969
|
+
userId: number;
|
|
970
|
+
mediaId: number;
|
|
971
|
+
mediaType: "ANIME" | "MANGA";
|
|
972
|
+
summary: string;
|
|
973
|
+
body: string;
|
|
974
|
+
rating: number;
|
|
975
|
+
ratingAmount: number;
|
|
976
|
+
userRating: "UP_VOTE" | "DOWN_VOTE" | "NO_VOTE";
|
|
977
|
+
score: number;
|
|
978
|
+
private: boolean;
|
|
979
|
+
siteUrl: string;
|
|
980
|
+
createdAt: number;
|
|
981
|
+
updatedAt: number;
|
|
982
|
+
user: User;
|
|
983
|
+
media: Media;
|
|
984
|
+
}
|
|
985
|
+
interface SearchReviewOptions {
|
|
986
|
+
mediaId?: number;
|
|
987
|
+
userId?: number;
|
|
988
|
+
sort?: ReviewSort[];
|
|
989
|
+
page?: number;
|
|
990
|
+
perPage?: number;
|
|
991
|
+
}
|
|
992
|
+
|
|
927
993
|
/** Represents a forum thread on AniList. */
|
|
928
994
|
interface Thread {
|
|
929
995
|
id: number;
|
|
@@ -1198,6 +1264,8 @@ declare class AniListClient {
|
|
|
1198
1264
|
* @param include - Optional related data to include
|
|
1199
1265
|
*/
|
|
1200
1266
|
getMedia(id: number, include?: MediaIncludeOptions): Promise<Media>;
|
|
1267
|
+
getMediaCharacters(mediaId: number, options?: GetMediaCharactersOptions): Promise<PagedResult<MediaCharacterEdge>>;
|
|
1268
|
+
getMediaStaff(mediaId: number, options?: GetMediaStaffOptions): Promise<PagedResult<MediaStaffEdge>>;
|
|
1201
1269
|
/**
|
|
1202
1270
|
* Search for anime or manga.
|
|
1203
1271
|
*
|
|
@@ -1220,7 +1288,7 @@ declare class AniListClient {
|
|
|
1220
1288
|
*/
|
|
1221
1289
|
getRecentlyUpdatedManga(options?: GetRecentChaptersOptions): Promise<PagedResult<Media>>;
|
|
1222
1290
|
/**
|
|
1223
|
-
* @deprecated Use `getRecentlyUpdatedManga` instead. This alias will be removed in
|
|
1291
|
+
* @deprecated Use `getRecentlyUpdatedManga()` instead. This alias will be removed in v3.
|
|
1224
1292
|
*/
|
|
1225
1293
|
getAiredChapters(options?: GetRecentChaptersOptions): Promise<PagedResult<Media>>;
|
|
1226
1294
|
/**
|
|
@@ -1273,6 +1341,19 @@ declare class AniListClient {
|
|
|
1273
1341
|
* ```
|
|
1274
1342
|
*/
|
|
1275
1343
|
getUserFavorites(idOrName: number | string, options?: UserFavoritesOptions): Promise<UserFavorites>;
|
|
1344
|
+
/**
|
|
1345
|
+
* Fetch a review by its AniList ID.
|
|
1346
|
+
*
|
|
1347
|
+
* @param id - The AniList review ID
|
|
1348
|
+
*/
|
|
1349
|
+
getReview(id: number): Promise<Review>;
|
|
1350
|
+
/**
|
|
1351
|
+
* Search for reviews with optional filters.
|
|
1352
|
+
*
|
|
1353
|
+
* @param options - Search and filter options
|
|
1354
|
+
* @returns Paginated results with matching reviews
|
|
1355
|
+
*/
|
|
1356
|
+
searchReviews(options?: SearchReviewOptions): Promise<PagedResult<Review>>;
|
|
1276
1357
|
/**
|
|
1277
1358
|
* Fetch a studio by its AniList ID.
|
|
1278
1359
|
* Pass `include` to customise the number of media returned.
|
|
@@ -1392,4 +1473,4 @@ declare class RateLimiter {
|
|
|
1392
1473
|
|
|
1393
1474
|
declare function parseAniListMarkdown(text: string): string;
|
|
1394
1475
|
|
|
1395
|
-
export { type AiringSchedule, AiringSort, AniListClient, type AniListClientOptions, AniListError, type AniListHooks, type CacheAdapter, type CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, type ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, type FuzzyDate, type GetAiringOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, type Logger, type Media, type MediaCharacterConnection, type MediaCharacterEdge, type MediaConnection, type MediaCoverImage, type MediaEdge, MediaFormat, type MediaIncludeOptions, type MediaListEntry, MediaListSort, MediaListStatus, type MediaRecommendationNode, MediaRelationType, MediaSeason, MediaSort, MediaSource, type MediaStaffConnection, type MediaStaffEdge, type MediaStats, MediaStatus, type MediaTag, type MediaTitle, type MediaTrailer, MediaType, MemoryCache, type NextAiringEpisode, type PageInfo, type PagedResult, type RateLimitInfo, type RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, RedisCache, type RedisCacheOptions, type RedisLikeClient, type ResponseMeta, type ScoreDistribution, type SearchCharacterOptions, type SearchMediaOptions, type SearchStaffOptions, type SearchStudioOptions, type SearchThreadOptions, type SearchUserOptions, type Staff, type StaffImage, type StaffIncludeOptions, type StaffMediaNode, type StaffName, StaffSort, type StatusDistribution, type StreamingEpisode, type Studio, type StudioConnection, type StudioIncludeOptions, StudioSort, type Thread, type ThreadCategory, type ThreadMediaCategory, ThreadSort, type User, type UserAvatar, type UserFavorites, type UserFavoritesOptions, UserSort, type UserStatistics, type VoiceActor, type WeeklySchedule, parseAniListMarkdown };
|
|
1476
|
+
export { type AiringSchedule, AiringSort, AniListClient, type AniListClientOptions, AniListError, type AniListHooks, type CacheAdapter, type CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, type ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, type FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, type Logger, type Media, type MediaCharacterConnection, type MediaCharacterEdge, type MediaConnection, type MediaCoverImage, type MediaEdge, MediaFormat, type MediaIncludeOptions, type MediaListEntry, MediaListSort, MediaListStatus, type MediaRecommendationNode, MediaRelationType, MediaSeason, MediaSort, MediaSource, type MediaStaffConnection, type MediaStaffEdge, type MediaStats, MediaStatus, type MediaTag, type MediaTitle, type MediaTrailer, MediaType, MemoryCache, type NextAiringEpisode, type PageInfo, type PagedResult, type RateLimitInfo, type RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, RedisCache, type RedisCacheOptions, type RedisLikeClient, type ResponseMeta, type Review, ReviewSort, type ScoreDistribution, type SearchCharacterOptions, type SearchMediaOptions, type SearchReviewOptions, type SearchStaffOptions, type SearchStudioOptions, type SearchThreadOptions, type SearchUserOptions, type Staff, type StaffImage, type StaffIncludeOptions, type StaffMediaNode, type StaffName, StaffSort, type StatusDistribution, type StreamingEpisode, type Studio, type StudioConnection, type StudioIncludeOptions, StudioSort, type Thread, type ThreadCategory, type ThreadMediaCategory, ThreadSort, type User, type UserAvatar, type UserFavorites, type UserFavoritesOptions, UserSort, type UserStatistics, type VoiceActor, type WeeklySchedule, parseAniListMarkdown };
|
package/dist/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ interface CacheOptions {
|
|
|
59
59
|
}
|
|
60
60
|
/** Rate limiter configuration options. */
|
|
61
61
|
interface RateLimitOptions {
|
|
62
|
-
/** Max requests per window (default:
|
|
62
|
+
/** Max requests per window (default: 25) */
|
|
63
63
|
maxRequests?: number;
|
|
64
64
|
/** Window size in ms (default: 60 000) */
|
|
65
65
|
windowMs?: number;
|
|
@@ -603,7 +603,7 @@ declare enum MediaRelationType {
|
|
|
603
603
|
}
|
|
604
604
|
interface MediaEdge {
|
|
605
605
|
relationType: MediaRelationType;
|
|
606
|
-
node: Pick<Media, "id" | "title" | "type" | "format" | "status" | "startDate" | "endDate" | "season" | "seasonYear" | "episodes" | "chapters" | "volumes" | "coverImage" | "genres" | "averageScore" | "studios" | "siteUrl" | "nextAiringEpisode">;
|
|
606
|
+
node: Pick<Media, "id" | "title" | "type" | "format" | "status" | "startDate" | "endDate" | "season" | "seasonYear" | "episodes" | "chapters" | "volumes" | "coverImage" | "genres" | "averageScore" | "meanScore" | "studios" | "siteUrl" | "nextAiringEpisode">;
|
|
607
607
|
}
|
|
608
608
|
interface MediaConnection {
|
|
609
609
|
edges: MediaEdge[];
|
|
@@ -644,7 +644,7 @@ interface MediaStats {
|
|
|
644
644
|
interface MediaRecommendationNode {
|
|
645
645
|
id: number;
|
|
646
646
|
rating: number | null;
|
|
647
|
-
mediaRecommendation: Pick<Media, "id" | "title" | "type" | "format" | "coverImage" | "averageScore" | "siteUrl">;
|
|
647
|
+
mediaRecommendation: Pick<Media, "id" | "title" | "type" | "format" | "coverImage" | "averageScore" | "meanScore" | "episodes" | "chapters" | "volumes" | "nextAiringEpisode" | "season" | "seasonYear" | "startDate" | "endDate" | "studios" | "genres" | "siteUrl">;
|
|
648
648
|
}
|
|
649
649
|
interface NextAiringEpisode {
|
|
650
650
|
id: number;
|
|
@@ -727,6 +727,8 @@ interface SearchMediaOptions {
|
|
|
727
727
|
tagsExclude?: string[];
|
|
728
728
|
/** Include or Exclude explicit content (default: false) */
|
|
729
729
|
isAdult?: boolean;
|
|
730
|
+
/** Exclude certain media entries by ID */
|
|
731
|
+
idNotIn?: number[];
|
|
730
732
|
/** Sort order */
|
|
731
733
|
sort?: MediaSort[];
|
|
732
734
|
/** Page number */
|
|
@@ -739,6 +741,8 @@ interface GeneralMediaQueryOptions {
|
|
|
739
741
|
type?: MediaType;
|
|
740
742
|
/** Include or Exclude explicit content (default: false) */
|
|
741
743
|
isAdult?: boolean;
|
|
744
|
+
/** Exclude certain media entries by ID */
|
|
745
|
+
idNotIn?: number[];
|
|
742
746
|
/** Page number */
|
|
743
747
|
page?: number;
|
|
744
748
|
/** Results per page (max 50) */
|
|
@@ -749,8 +753,8 @@ interface GetAiringOptions {
|
|
|
749
753
|
airingAtGreater?: number;
|
|
750
754
|
/** Only show episodes that aired before this UNIX timestamp */
|
|
751
755
|
airingAtLesser?: number;
|
|
752
|
-
/**
|
|
753
|
-
|
|
756
|
+
/** Exclude certain media entries by ID */
|
|
757
|
+
idNotIn?: number[];
|
|
754
758
|
/** Sort order (default: TIME_DESC) */
|
|
755
759
|
sort?: AiringSort[];
|
|
756
760
|
/** Page number */
|
|
@@ -761,6 +765,8 @@ interface GetAiringOptions {
|
|
|
761
765
|
interface GetRecentChaptersOptions {
|
|
762
766
|
/** Include or Exclude explicit content (default: false) */
|
|
763
767
|
isAdult?: boolean;
|
|
768
|
+
/** Exclude certain media entries by ID */
|
|
769
|
+
idNotIn?: number[];
|
|
764
770
|
/** Page number (default: 1) */
|
|
765
771
|
page?: number;
|
|
766
772
|
/** Results per page (default: 20, max 50) */
|
|
@@ -771,6 +777,8 @@ interface GetPlanningOptions {
|
|
|
771
777
|
type?: MediaType;
|
|
772
778
|
/** Include or Exclude explicit content (default: false) */
|
|
773
779
|
isAdult?: boolean;
|
|
780
|
+
/** Exclude certain media entries by ID */
|
|
781
|
+
idNotIn?: number[];
|
|
774
782
|
/** Sort order (default: POPULARITY_DESC) */
|
|
775
783
|
sort?: MediaSort[];
|
|
776
784
|
/** Page number */
|
|
@@ -814,6 +822,8 @@ interface GetSeasonOptions {
|
|
|
814
822
|
type?: MediaType;
|
|
815
823
|
/** Allow or disallow explicit content (defaults to False) */
|
|
816
824
|
isAdult?: boolean;
|
|
825
|
+
/** Exclude certain media entries by ID */
|
|
826
|
+
idNotIn?: number[];
|
|
817
827
|
/** Sort order (default: POPULARITY_DESC) */
|
|
818
828
|
sort?: MediaSort[];
|
|
819
829
|
/** Page number */
|
|
@@ -852,6 +862,24 @@ interface MediaIncludeOptions {
|
|
|
852
862
|
perPage?: number;
|
|
853
863
|
};
|
|
854
864
|
}
|
|
865
|
+
interface GetMediaCharactersOptions {
|
|
866
|
+
/** Page number */
|
|
867
|
+
page?: number;
|
|
868
|
+
/** Results per page (max 50) */
|
|
869
|
+
perPage?: number;
|
|
870
|
+
/** Disable default sort order */
|
|
871
|
+
sort?: boolean;
|
|
872
|
+
/** Include voice actors for each character edge */
|
|
873
|
+
voiceActors?: boolean;
|
|
874
|
+
}
|
|
875
|
+
interface GetMediaStaffOptions {
|
|
876
|
+
/** Page number */
|
|
877
|
+
page?: number;
|
|
878
|
+
/** Results per page (max 50) */
|
|
879
|
+
perPage?: number;
|
|
880
|
+
/** Disable default sort order */
|
|
881
|
+
sort?: boolean;
|
|
882
|
+
}
|
|
855
883
|
interface AiringSchedule {
|
|
856
884
|
id: number;
|
|
857
885
|
airingAt: number;
|
|
@@ -924,6 +952,44 @@ interface SearchCharacterOptions {
|
|
|
924
952
|
voiceActors?: boolean;
|
|
925
953
|
}
|
|
926
954
|
|
|
955
|
+
declare enum ReviewSort {
|
|
956
|
+
ID = "ID",
|
|
957
|
+
ID_DESC = "ID_DESC",
|
|
958
|
+
SCORE = "SCORE",
|
|
959
|
+
SCORE_DESC = "SCORE_DESC",
|
|
960
|
+
RATING = "RATING",
|
|
961
|
+
RATING_DESC = "RATING_DESC",
|
|
962
|
+
CREATED_AT = "CREATED_AT",
|
|
963
|
+
CREATED_AT_DESC = "CREATED_AT_DESC",
|
|
964
|
+
UPDATED_AT = "UPDATED_AT",
|
|
965
|
+
UPDATED_AT_DESC = "UPDATED_AT_DESC"
|
|
966
|
+
}
|
|
967
|
+
interface Review {
|
|
968
|
+
id: number;
|
|
969
|
+
userId: number;
|
|
970
|
+
mediaId: number;
|
|
971
|
+
mediaType: "ANIME" | "MANGA";
|
|
972
|
+
summary: string;
|
|
973
|
+
body: string;
|
|
974
|
+
rating: number;
|
|
975
|
+
ratingAmount: number;
|
|
976
|
+
userRating: "UP_VOTE" | "DOWN_VOTE" | "NO_VOTE";
|
|
977
|
+
score: number;
|
|
978
|
+
private: boolean;
|
|
979
|
+
siteUrl: string;
|
|
980
|
+
createdAt: number;
|
|
981
|
+
updatedAt: number;
|
|
982
|
+
user: User;
|
|
983
|
+
media: Media;
|
|
984
|
+
}
|
|
985
|
+
interface SearchReviewOptions {
|
|
986
|
+
mediaId?: number;
|
|
987
|
+
userId?: number;
|
|
988
|
+
sort?: ReviewSort[];
|
|
989
|
+
page?: number;
|
|
990
|
+
perPage?: number;
|
|
991
|
+
}
|
|
992
|
+
|
|
927
993
|
/** Represents a forum thread on AniList. */
|
|
928
994
|
interface Thread {
|
|
929
995
|
id: number;
|
|
@@ -1198,6 +1264,8 @@ declare class AniListClient {
|
|
|
1198
1264
|
* @param include - Optional related data to include
|
|
1199
1265
|
*/
|
|
1200
1266
|
getMedia(id: number, include?: MediaIncludeOptions): Promise<Media>;
|
|
1267
|
+
getMediaCharacters(mediaId: number, options?: GetMediaCharactersOptions): Promise<PagedResult<MediaCharacterEdge>>;
|
|
1268
|
+
getMediaStaff(mediaId: number, options?: GetMediaStaffOptions): Promise<PagedResult<MediaStaffEdge>>;
|
|
1201
1269
|
/**
|
|
1202
1270
|
* Search for anime or manga.
|
|
1203
1271
|
*
|
|
@@ -1220,7 +1288,7 @@ declare class AniListClient {
|
|
|
1220
1288
|
*/
|
|
1221
1289
|
getRecentlyUpdatedManga(options?: GetRecentChaptersOptions): Promise<PagedResult<Media>>;
|
|
1222
1290
|
/**
|
|
1223
|
-
* @deprecated Use `getRecentlyUpdatedManga` instead. This alias will be removed in
|
|
1291
|
+
* @deprecated Use `getRecentlyUpdatedManga()` instead. This alias will be removed in v3.
|
|
1224
1292
|
*/
|
|
1225
1293
|
getAiredChapters(options?: GetRecentChaptersOptions): Promise<PagedResult<Media>>;
|
|
1226
1294
|
/**
|
|
@@ -1273,6 +1341,19 @@ declare class AniListClient {
|
|
|
1273
1341
|
* ```
|
|
1274
1342
|
*/
|
|
1275
1343
|
getUserFavorites(idOrName: number | string, options?: UserFavoritesOptions): Promise<UserFavorites>;
|
|
1344
|
+
/**
|
|
1345
|
+
* Fetch a review by its AniList ID.
|
|
1346
|
+
*
|
|
1347
|
+
* @param id - The AniList review ID
|
|
1348
|
+
*/
|
|
1349
|
+
getReview(id: number): Promise<Review>;
|
|
1350
|
+
/**
|
|
1351
|
+
* Search for reviews with optional filters.
|
|
1352
|
+
*
|
|
1353
|
+
* @param options - Search and filter options
|
|
1354
|
+
* @returns Paginated results with matching reviews
|
|
1355
|
+
*/
|
|
1356
|
+
searchReviews(options?: SearchReviewOptions): Promise<PagedResult<Review>>;
|
|
1276
1357
|
/**
|
|
1277
1358
|
* Fetch a studio by its AniList ID.
|
|
1278
1359
|
* Pass `include` to customise the number of media returned.
|
|
@@ -1392,4 +1473,4 @@ declare class RateLimiter {
|
|
|
1392
1473
|
|
|
1393
1474
|
declare function parseAniListMarkdown(text: string): string;
|
|
1394
1475
|
|
|
1395
|
-
export { type AiringSchedule, AiringSort, AniListClient, type AniListClientOptions, AniListError, type AniListHooks, type CacheAdapter, type CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, type ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, type FuzzyDate, type GetAiringOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, type Logger, type Media, type MediaCharacterConnection, type MediaCharacterEdge, type MediaConnection, type MediaCoverImage, type MediaEdge, MediaFormat, type MediaIncludeOptions, type MediaListEntry, MediaListSort, MediaListStatus, type MediaRecommendationNode, MediaRelationType, MediaSeason, MediaSort, MediaSource, type MediaStaffConnection, type MediaStaffEdge, type MediaStats, MediaStatus, type MediaTag, type MediaTitle, type MediaTrailer, MediaType, MemoryCache, type NextAiringEpisode, type PageInfo, type PagedResult, type RateLimitInfo, type RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, RedisCache, type RedisCacheOptions, type RedisLikeClient, type ResponseMeta, type ScoreDistribution, type SearchCharacterOptions, type SearchMediaOptions, type SearchStaffOptions, type SearchStudioOptions, type SearchThreadOptions, type SearchUserOptions, type Staff, type StaffImage, type StaffIncludeOptions, type StaffMediaNode, type StaffName, StaffSort, type StatusDistribution, type StreamingEpisode, type Studio, type StudioConnection, type StudioIncludeOptions, StudioSort, type Thread, type ThreadCategory, type ThreadMediaCategory, ThreadSort, type User, type UserAvatar, type UserFavorites, type UserFavoritesOptions, UserSort, type UserStatistics, type VoiceActor, type WeeklySchedule, parseAniListMarkdown };
|
|
1476
|
+
export { type AiringSchedule, AiringSort, AniListClient, type AniListClientOptions, AniListError, type AniListHooks, type CacheAdapter, type CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, type ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, type FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, type Logger, type Media, type MediaCharacterConnection, type MediaCharacterEdge, type MediaConnection, type MediaCoverImage, type MediaEdge, MediaFormat, type MediaIncludeOptions, type MediaListEntry, MediaListSort, MediaListStatus, type MediaRecommendationNode, MediaRelationType, MediaSeason, MediaSort, MediaSource, type MediaStaffConnection, type MediaStaffEdge, type MediaStats, MediaStatus, type MediaTag, type MediaTitle, type MediaTrailer, MediaType, MemoryCache, type NextAiringEpisode, type PageInfo, type PagedResult, type RateLimitInfo, type RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, RedisCache, type RedisCacheOptions, type RedisLikeClient, type ResponseMeta, type Review, ReviewSort, type ScoreDistribution, type SearchCharacterOptions, type SearchMediaOptions, type SearchReviewOptions, type SearchStaffOptions, type SearchStudioOptions, type SearchThreadOptions, type SearchUserOptions, type Staff, type StaffImage, type StaffIncludeOptions, type StaffMediaNode, type StaffName, StaffSort, type StatusDistribution, type StreamingEpisode, type Studio, type StudioConnection, type StudioIncludeOptions, StudioSort, type Thread, type ThreadCategory, type ThreadMediaCategory, ThreadSort, type User, type UserAvatar, type UserFavorites, type UserFavoritesOptions, UserSort, type UserStatistics, type VoiceActor, type WeeklySchedule, parseAniListMarkdown };
|