ani-client 2.3.0 → 2.5.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 +6 -1
- package/dist/cache/redis.d.mts +1 -1
- package/dist/cache/redis.d.ts +1 -1
- package/dist/index.d.mts +75 -4
- package/dist/index.d.ts +75 -4
- package/dist/index.js +183 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +183 -23
- package/dist/index.mjs.map +1 -1
- package/dist/{redis-UeRs8nqC.d.mts → redis-ClB2nNrs.d.mts} +13 -0
- package/dist/{redis-UeRs8nqC.d.ts → redis-ClB2nNrs.d.ts} +13 -0
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
- **LRU cache** with TTL, stale-while-revalidate, and hit/miss stats
|
|
19
19
|
- **Rate-limit protection** with exponential backoff, retries, and custom strategies
|
|
20
20
|
- **Request deduplication** — concurrent identical queries share a single in-flight request
|
|
21
|
-
- **
|
|
21
|
+
- **Automatic batching (DataLoader)** — groups rapid, individual `getMedia(id)` calls within a 50ms window into a single batch query, saving API limits.
|
|
22
|
+
- **Batch queries** — manually fetch up to 50 media, characters, or staff in a single API call
|
|
22
23
|
- **Auto-pagination** — async iterator that yields items across all pages
|
|
23
24
|
- **AbortSignal support** — cancel globally or per-request via `withSignal()`
|
|
24
25
|
- **Injectable logger** — plug in `console`, pino, winston, or any compatible logger
|
|
@@ -78,6 +79,10 @@ Contributions are welcome! Before opening an issue or a pull request, please rea
|
|
|
78
79
|
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
79
80
|
- [SECURITY.md](SECURITY.md)
|
|
80
81
|
|
|
82
|
+
## Disclaimer
|
|
83
|
+
|
|
84
|
+
> **Note:** `ani-client` is an unofficial, community-driven tool. It is not affiliated with, endorsed by, or associated with AniList or AniChart in any way.
|
|
85
|
+
|
|
81
86
|
## License
|
|
82
87
|
|
|
83
88
|
[MIT](LICENSE) © [gonzyui](https://gonzyuidev.xyz)
|
package/dist/cache/redis.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from '../redis-
|
|
1
|
+
export { f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from '../redis-ClB2nNrs.mjs';
|
package/dist/cache/redis.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from '../redis-
|
|
1
|
+
export { f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from '../redis-ClB2nNrs.js';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FuzzyDate, P as PageInfo, E as ExternalLink, C as CacheAdapter, a as CacheOptions, b as PagedResult, A as AniListClientOptions, R as RateLimitInfo, c as ResponseMeta, d as RateLimitOptions } from './redis-
|
|
2
|
-
export { e as AniListHooks, L as Logger, f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from './redis-
|
|
1
|
+
import { F as FuzzyDate, P as PageInfo, E as ExternalLink, C as CacheAdapter, a as CacheOptions, b as PagedResult, A as AniListClientOptions, R as RateLimitInfo, c as ResponseMeta, d as RateLimitOptions } from './redis-ClB2nNrs.mjs';
|
|
2
|
+
export { e as AniListHooks, L as Logger, f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from './redis-ClB2nNrs.mjs';
|
|
3
3
|
|
|
4
4
|
declare enum MediaListStatus {
|
|
5
5
|
CURRENT = "CURRENT",
|
|
@@ -156,6 +156,10 @@ interface Staff {
|
|
|
156
156
|
}
|
|
157
157
|
/** Options to include additional related data when fetching a staff member by ID. */
|
|
158
158
|
interface StaffIncludeOptions {
|
|
159
|
+
/** Include character roles (voice acting) for each media the staff member worked on. */
|
|
160
|
+
characterRoles?: boolean;
|
|
161
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
162
|
+
customFields?: string;
|
|
159
163
|
/** Include media the staff member has worked on.
|
|
160
164
|
* `true` = 25 results sorted by popularity. Object form to customize. */
|
|
161
165
|
media?: boolean | {
|
|
@@ -211,10 +215,14 @@ interface SearchStudioOptions {
|
|
|
211
215
|
* Pass `{ media: { perPage: 50 } }` to fetch more media per studio.
|
|
212
216
|
*/
|
|
213
217
|
interface StudioIncludeOptions {
|
|
214
|
-
/**
|
|
218
|
+
/** Include the media produced by this studio. */
|
|
215
219
|
media?: boolean | {
|
|
216
220
|
perPage?: number;
|
|
221
|
+
isMain?: boolean;
|
|
222
|
+
sort?: boolean;
|
|
217
223
|
};
|
|
224
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
225
|
+
customFields?: string;
|
|
218
226
|
}
|
|
219
227
|
|
|
220
228
|
declare enum UserSort {
|
|
@@ -707,6 +715,8 @@ interface MediaIncludeOptions {
|
|
|
707
715
|
recommendations?: boolean | {
|
|
708
716
|
perPage?: number;
|
|
709
717
|
};
|
|
718
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
719
|
+
customFields?: string;
|
|
710
720
|
}
|
|
711
721
|
interface GetMediaCharactersOptions {
|
|
712
722
|
/** Page number */
|
|
@@ -788,6 +798,8 @@ interface Character {
|
|
|
788
798
|
interface CharacterIncludeOptions {
|
|
789
799
|
/** Include voice actors for each media the character appears in. */
|
|
790
800
|
voiceActors?: boolean;
|
|
801
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
802
|
+
customFields?: string;
|
|
791
803
|
}
|
|
792
804
|
interface SearchCharacterOptions {
|
|
793
805
|
query?: string;
|
|
@@ -1038,6 +1050,7 @@ interface ClientBase {
|
|
|
1038
1050
|
request<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
|
|
1039
1051
|
pagedRequest<T>(query: string, variables: Record<string, unknown>, field: string): Promise<PagedResult<T>>;
|
|
1040
1052
|
paginate<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): AsyncGenerator<T, void, undefined>;
|
|
1053
|
+
fetchAll<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): Promise<T[]>;
|
|
1041
1054
|
}
|
|
1042
1055
|
|
|
1043
1056
|
/**
|
|
@@ -1069,6 +1082,10 @@ declare class AniListClient implements ClientBase {
|
|
|
1069
1082
|
private readonly inFlight;
|
|
1070
1083
|
private _rateLimitInfo?;
|
|
1071
1084
|
private _lastRequestMeta?;
|
|
1085
|
+
private readonly mediaLoader;
|
|
1086
|
+
private readonly characterLoader;
|
|
1087
|
+
private readonly staffLoader;
|
|
1088
|
+
private readonly batchingEnabled;
|
|
1072
1089
|
constructor(options?: AniListClientOptions);
|
|
1073
1090
|
/**
|
|
1074
1091
|
* The current rate limit information from the last API response.
|
|
@@ -1210,6 +1227,13 @@ declare class AniListClient implements ClientBase {
|
|
|
1210
1227
|
* @param maxPages - Maximum number of pages to fetch (default: Infinity)
|
|
1211
1228
|
*/
|
|
1212
1229
|
paginate<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): AsyncGenerator<T, void, undefined>;
|
|
1230
|
+
/**
|
|
1231
|
+
* Utility to fetch all pages of a paginated request and return them as a single array.
|
|
1232
|
+
*
|
|
1233
|
+
* @param fetchPage - A function that takes a page number and returns a `PagedResult<T>`
|
|
1234
|
+
* @param maxPages - Maximum number of pages to fetch (default: Infinity)
|
|
1235
|
+
*/
|
|
1236
|
+
fetchAll<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): Promise<T[]>;
|
|
1213
1237
|
/** Fetch multiple media entries in a single API request. */
|
|
1214
1238
|
getMediaBatch(ids: number[]): Promise<Media[]>;
|
|
1215
1239
|
/** Fetch multiple characters in a single API request. */
|
|
@@ -1270,6 +1294,53 @@ declare class AniListError extends Error {
|
|
|
1270
1294
|
constructor(message: string, status: number, errors?: GraphQLError[] | unknown[]);
|
|
1271
1295
|
}
|
|
1272
1296
|
|
|
1297
|
+
/**
|
|
1298
|
+
* Lightweight media fields — minimal payload for list/search contexts.
|
|
1299
|
+
* Does NOT include tags, studios, trailer, synonyms, or nextAiringEpisode.
|
|
1300
|
+
*/
|
|
1301
|
+
declare const MEDIA_FIELDS_LIGHT = "\n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n coverImage { large medium color }\n bannerImage\n genres\n averageScore\n popularity\n favourites\n isAdult\n siteUrl\n season\n seasonYear\n episodes\n chapters\n nextAiringEpisode {\n id\n airingAt\n episode\n timeUntilAiring\n }\n";
|
|
1302
|
+
/** Core media fields — always returned. Does NOT include relations (opt-in via include). */
|
|
1303
|
+
declare const MEDIA_FIELDS_BASE = "\n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n";
|
|
1304
|
+
declare const RELATIONS_FIELDS = "\n relations {\n edges {\n relationType(version: 2)\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n chapters\n volumes\n coverImage { extraLarge large medium color }\n genres\n averageScore\n meanScore\n studios { nodes { id name isAnimationStudio siteUrl } }\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n }\n }\n }\n";
|
|
1305
|
+
/** Media Recommendation fields - used for when fetching recommendation for a specific media entry */
|
|
1306
|
+
declare const MEDIA_RECOMMENDATION_FIELDS = "\n __typename\n id\n rating\n mediaRecommendation {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n coverImage { extraLarge large medium color }\n averageScore\n meanScore\n \tepisodes\n \tchapters\n \tvolumes\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n \tseason\n \tseasonYear\n \tstartDate { year month day }\n endDate { year month day }\n \tstudios { nodes { id name isAnimationStudio siteUrl } }\n \tgenres\n siteUrl\n }\n";
|
|
1307
|
+
/** Full media fields with relations — used by existing queries for backward compat. */
|
|
1308
|
+
declare const MEDIA_FIELDS = "\n \n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n\n \n relations {\n edges {\n relationType(version: 2)\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n chapters\n volumes\n coverImage { extraLarge large medium color }\n genres\n averageScore\n meanScore\n studios { nodes { id name isAnimationStudio siteUrl } }\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n }\n }\n }\n\n";
|
|
1309
|
+
/** Character fields without back-reference to media (used when embedding characters inside a Media query). */
|
|
1310
|
+
declare const CHARACTER_FIELDS_COMPACT = "\n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n";
|
|
1311
|
+
/** Compact voice actor fields — lightweight subset for embedding inside character edges. */
|
|
1312
|
+
declare const VOICE_ACTOR_FIELDS_COMPACT = "\n __typename\n id\n name { first middle last full native userPreferred }\n languageV2\n image { large medium }\n gender\n primaryOccupations\n siteUrl\n";
|
|
1313
|
+
declare const CHARACTER_FIELDS = "\n \n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n\n \n media(perPage: 10) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n }\n\n";
|
|
1314
|
+
declare const CHARACTER_FIELDS_WITH_VA = "\n \n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n\n \n media(perPage: 10) {\n edges {\n voiceActors {\n \n __typename\n id\n name { first middle last full native userPreferred }\n languageV2\n image { large medium }\n gender\n primaryOccupations\n siteUrl\n\n }\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n }\n }\n\n";
|
|
1315
|
+
declare const STAFF_FIELDS = "\n __typename\n id\n name { first middle last full native }\n language\n image { large medium }\n description(asHtml: false)\n primaryOccupations\n gender\n dateOfBirth { year month day }\n dateOfDeath { year month day }\n age\n yearsActive\n homeTown\n bloodType\n favourites\n siteUrl\n";
|
|
1316
|
+
declare const STAFF_MEDIA_FIELDS = "\n staffMedia(perPage: $perPage, sort: [POPULARITY_DESC]) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n averageScore\n meanScore\n popularity\n favourites\n episodes\n trending\n hashtag\n season\n seasonYear\n startDate { year month day }\n endDate { year month day }\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n studios {\n edges {\n node {\n name\n }\n }\n }\n siteUrl\n }\n }\n";
|
|
1317
|
+
declare const USER_FIELDS = "\n __typename\n id\n name\n about(asHtml: false)\n avatar { large medium }\n bannerImage\n isFollowing\n isFollower\n donatorTier\n donatorBadge\n createdAt\n siteUrl\n statistics {\n anime { count meanScore minutesWatched episodesWatched chaptersRead volumesRead }\n manga { count meanScore minutesWatched episodesWatched chaptersRead volumesRead }\n }\n";
|
|
1318
|
+
/** Favorites fragment — lightweight fields for each favorite category. */
|
|
1319
|
+
declare const USER_FAVORITES_FIELDS = "\n favourites {\n anime(perPage: 25) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n coverImage { large medium }\n type\n format\n siteUrl\n }\n }\n manga(perPage: 25) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n coverImage { large medium }\n type\n format\n siteUrl\n }\n }\n characters(perPage: 25) {\n nodes {\n __typename\n id\n name { full native }\n image { large medium }\n siteUrl\n }\n }\n staff(perPage: 25) {\n nodes {\n __typename\n id\n name { full native }\n image { large medium }\n siteUrl\n }\n }\n studios(perPage: 25) {\n nodes {\n __typename\n id\n name\n siteUrl\n }\n }\n }\n";
|
|
1320
|
+
declare const MEDIA_LIST_FIELDS = "\n __typename\n id\n mediaId\n status\n score(format: POINT_100)\n progress\n progressVolumes\n repeat\n priority\n private\n notes\n startedAt { year month day }\n completedAt { year month day }\n updatedAt\n createdAt\n media {\n \n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n\n }\n";
|
|
1321
|
+
declare const STUDIO_FIELDS = "\n __typename\n id\n name\n isAnimationStudio\n siteUrl\n favourites\n media(page: 1, perPage: 25, sort: POPULARITY_DESC) {\n pageInfo { total perPage currentPage lastPage hasNextPage }\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n coverImage { large medium }\n siteUrl\n }\n }\n";
|
|
1322
|
+
declare const THREAD_FIELDS = "\n __typename\n id\n title\n body(asHtml: false)\n userId\n replyUserId\n replyCommentId\n replyCount\n viewCount\n isLocked\n isSticky\n isSubscribed\n repliedAt\n createdAt\n updatedAt\n siteUrl\n user {\n __typename\n id\n name\n avatar { large medium }\n }\n replyUser {\n __typename\n id\n name\n avatar { large medium }\n }\n categories {\n __typename\n id\n name\n }\n mediaCategories {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n likes {\n __typename\n id\n name\n }\n";
|
|
1323
|
+
|
|
1324
|
+
declare const fragments_CHARACTER_FIELDS: typeof CHARACTER_FIELDS;
|
|
1325
|
+
declare const fragments_CHARACTER_FIELDS_COMPACT: typeof CHARACTER_FIELDS_COMPACT;
|
|
1326
|
+
declare const fragments_CHARACTER_FIELDS_WITH_VA: typeof CHARACTER_FIELDS_WITH_VA;
|
|
1327
|
+
declare const fragments_MEDIA_FIELDS: typeof MEDIA_FIELDS;
|
|
1328
|
+
declare const fragments_MEDIA_FIELDS_BASE: typeof MEDIA_FIELDS_BASE;
|
|
1329
|
+
declare const fragments_MEDIA_FIELDS_LIGHT: typeof MEDIA_FIELDS_LIGHT;
|
|
1330
|
+
declare const fragments_MEDIA_LIST_FIELDS: typeof MEDIA_LIST_FIELDS;
|
|
1331
|
+
declare const fragments_MEDIA_RECOMMENDATION_FIELDS: typeof MEDIA_RECOMMENDATION_FIELDS;
|
|
1332
|
+
declare const fragments_RELATIONS_FIELDS: typeof RELATIONS_FIELDS;
|
|
1333
|
+
declare const fragments_STAFF_FIELDS: typeof STAFF_FIELDS;
|
|
1334
|
+
declare const fragments_STAFF_MEDIA_FIELDS: typeof STAFF_MEDIA_FIELDS;
|
|
1335
|
+
declare const fragments_STUDIO_FIELDS: typeof STUDIO_FIELDS;
|
|
1336
|
+
declare const fragments_THREAD_FIELDS: typeof THREAD_FIELDS;
|
|
1337
|
+
declare const fragments_USER_FAVORITES_FIELDS: typeof USER_FAVORITES_FIELDS;
|
|
1338
|
+
declare const fragments_USER_FIELDS: typeof USER_FIELDS;
|
|
1339
|
+
declare const fragments_VOICE_ACTOR_FIELDS_COMPACT: typeof VOICE_ACTOR_FIELDS_COMPACT;
|
|
1340
|
+
declare namespace fragments {
|
|
1341
|
+
export { fragments_CHARACTER_FIELDS as CHARACTER_FIELDS, fragments_CHARACTER_FIELDS_COMPACT as CHARACTER_FIELDS_COMPACT, fragments_CHARACTER_FIELDS_WITH_VA as CHARACTER_FIELDS_WITH_VA, fragments_MEDIA_FIELDS as MEDIA_FIELDS, fragments_MEDIA_FIELDS_BASE as MEDIA_FIELDS_BASE, fragments_MEDIA_FIELDS_LIGHT as MEDIA_FIELDS_LIGHT, fragments_MEDIA_LIST_FIELDS as MEDIA_LIST_FIELDS, fragments_MEDIA_RECOMMENDATION_FIELDS as MEDIA_RECOMMENDATION_FIELDS, fragments_RELATIONS_FIELDS as RELATIONS_FIELDS, fragments_STAFF_FIELDS as STAFF_FIELDS, fragments_STAFF_MEDIA_FIELDS as STAFF_MEDIA_FIELDS, fragments_STUDIO_FIELDS as STUDIO_FIELDS, fragments_THREAD_FIELDS as THREAD_FIELDS, fragments_USER_FAVORITES_FIELDS as USER_FAVORITES_FIELDS, fragments_USER_FIELDS as USER_FIELDS, fragments_VOICE_ACTOR_FIELDS_COMPACT as VOICE_ACTOR_FIELDS_COMPACT };
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1273
1344
|
/**
|
|
1274
1345
|
* Rate limiter with automatic retry for AniList API.
|
|
1275
1346
|
*
|
|
@@ -1317,4 +1388,4 @@ declare class RateLimiter {
|
|
|
1317
1388
|
|
|
1318
1389
|
declare function parseAniListMarkdown(text: string): string;
|
|
1319
1390
|
|
|
1320
|
-
export { type AiringSchedule, AiringSort, AniListClient, AniListClientOptions, AniListError, CacheAdapter, CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, 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, NormalizedCache, PageInfo, PagedResult, RateLimitInfo, RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, 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 };
|
|
1391
|
+
export { type AiringSchedule, AiringSort, AniListClient, AniListClientOptions, AniListError, CacheAdapter, CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, fragments as Fragments, FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, 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, NormalizedCache, PageInfo, PagedResult, RateLimitInfo, RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, 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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FuzzyDate, P as PageInfo, E as ExternalLink, C as CacheAdapter, a as CacheOptions, b as PagedResult, A as AniListClientOptions, R as RateLimitInfo, c as ResponseMeta, d as RateLimitOptions } from './redis-
|
|
2
|
-
export { e as AniListHooks, L as Logger, f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from './redis-
|
|
1
|
+
import { F as FuzzyDate, P as PageInfo, E as ExternalLink, C as CacheAdapter, a as CacheOptions, b as PagedResult, A as AniListClientOptions, R as RateLimitInfo, c as ResponseMeta, d as RateLimitOptions } from './redis-ClB2nNrs.js';
|
|
2
|
+
export { e as AniListHooks, L as Logger, f as RedisCache, g as RedisCacheOptions, h as RedisLikeClient } from './redis-ClB2nNrs.js';
|
|
3
3
|
|
|
4
4
|
declare enum MediaListStatus {
|
|
5
5
|
CURRENT = "CURRENT",
|
|
@@ -156,6 +156,10 @@ interface Staff {
|
|
|
156
156
|
}
|
|
157
157
|
/** Options to include additional related data when fetching a staff member by ID. */
|
|
158
158
|
interface StaffIncludeOptions {
|
|
159
|
+
/** Include character roles (voice acting) for each media the staff member worked on. */
|
|
160
|
+
characterRoles?: boolean;
|
|
161
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
162
|
+
customFields?: string;
|
|
159
163
|
/** Include media the staff member has worked on.
|
|
160
164
|
* `true` = 25 results sorted by popularity. Object form to customize. */
|
|
161
165
|
media?: boolean | {
|
|
@@ -211,10 +215,14 @@ interface SearchStudioOptions {
|
|
|
211
215
|
* Pass `{ media: { perPage: 50 } }` to fetch more media per studio.
|
|
212
216
|
*/
|
|
213
217
|
interface StudioIncludeOptions {
|
|
214
|
-
/**
|
|
218
|
+
/** Include the media produced by this studio. */
|
|
215
219
|
media?: boolean | {
|
|
216
220
|
perPage?: number;
|
|
221
|
+
isMain?: boolean;
|
|
222
|
+
sort?: boolean;
|
|
217
223
|
};
|
|
224
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
225
|
+
customFields?: string;
|
|
218
226
|
}
|
|
219
227
|
|
|
220
228
|
declare enum UserSort {
|
|
@@ -707,6 +715,8 @@ interface MediaIncludeOptions {
|
|
|
707
715
|
recommendations?: boolean | {
|
|
708
716
|
perPage?: number;
|
|
709
717
|
};
|
|
718
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
719
|
+
customFields?: string;
|
|
710
720
|
}
|
|
711
721
|
interface GetMediaCharactersOptions {
|
|
712
722
|
/** Page number */
|
|
@@ -788,6 +798,8 @@ interface Character {
|
|
|
788
798
|
interface CharacterIncludeOptions {
|
|
789
799
|
/** Include voice actors for each media the character appears in. */
|
|
790
800
|
voiceActors?: boolean;
|
|
801
|
+
/** Raw GraphQL fields to append to the query (e.g. for custom data) */
|
|
802
|
+
customFields?: string;
|
|
791
803
|
}
|
|
792
804
|
interface SearchCharacterOptions {
|
|
793
805
|
query?: string;
|
|
@@ -1038,6 +1050,7 @@ interface ClientBase {
|
|
|
1038
1050
|
request<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
|
|
1039
1051
|
pagedRequest<T>(query: string, variables: Record<string, unknown>, field: string): Promise<PagedResult<T>>;
|
|
1040
1052
|
paginate<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): AsyncGenerator<T, void, undefined>;
|
|
1053
|
+
fetchAll<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): Promise<T[]>;
|
|
1041
1054
|
}
|
|
1042
1055
|
|
|
1043
1056
|
/**
|
|
@@ -1069,6 +1082,10 @@ declare class AniListClient implements ClientBase {
|
|
|
1069
1082
|
private readonly inFlight;
|
|
1070
1083
|
private _rateLimitInfo?;
|
|
1071
1084
|
private _lastRequestMeta?;
|
|
1085
|
+
private readonly mediaLoader;
|
|
1086
|
+
private readonly characterLoader;
|
|
1087
|
+
private readonly staffLoader;
|
|
1088
|
+
private readonly batchingEnabled;
|
|
1072
1089
|
constructor(options?: AniListClientOptions);
|
|
1073
1090
|
/**
|
|
1074
1091
|
* The current rate limit information from the last API response.
|
|
@@ -1210,6 +1227,13 @@ declare class AniListClient implements ClientBase {
|
|
|
1210
1227
|
* @param maxPages - Maximum number of pages to fetch (default: Infinity)
|
|
1211
1228
|
*/
|
|
1212
1229
|
paginate<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): AsyncGenerator<T, void, undefined>;
|
|
1230
|
+
/**
|
|
1231
|
+
* Utility to fetch all pages of a paginated request and return them as a single array.
|
|
1232
|
+
*
|
|
1233
|
+
* @param fetchPage - A function that takes a page number and returns a `PagedResult<T>`
|
|
1234
|
+
* @param maxPages - Maximum number of pages to fetch (default: Infinity)
|
|
1235
|
+
*/
|
|
1236
|
+
fetchAll<T>(fetchPage: (page: number) => Promise<PagedResult<T>>, maxPages?: number): Promise<T[]>;
|
|
1213
1237
|
/** Fetch multiple media entries in a single API request. */
|
|
1214
1238
|
getMediaBatch(ids: number[]): Promise<Media[]>;
|
|
1215
1239
|
/** Fetch multiple characters in a single API request. */
|
|
@@ -1270,6 +1294,53 @@ declare class AniListError extends Error {
|
|
|
1270
1294
|
constructor(message: string, status: number, errors?: GraphQLError[] | unknown[]);
|
|
1271
1295
|
}
|
|
1272
1296
|
|
|
1297
|
+
/**
|
|
1298
|
+
* Lightweight media fields — minimal payload for list/search contexts.
|
|
1299
|
+
* Does NOT include tags, studios, trailer, synonyms, or nextAiringEpisode.
|
|
1300
|
+
*/
|
|
1301
|
+
declare const MEDIA_FIELDS_LIGHT = "\n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n coverImage { large medium color }\n bannerImage\n genres\n averageScore\n popularity\n favourites\n isAdult\n siteUrl\n season\n seasonYear\n episodes\n chapters\n nextAiringEpisode {\n id\n airingAt\n episode\n timeUntilAiring\n }\n";
|
|
1302
|
+
/** Core media fields — always returned. Does NOT include relations (opt-in via include). */
|
|
1303
|
+
declare const MEDIA_FIELDS_BASE = "\n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n";
|
|
1304
|
+
declare const RELATIONS_FIELDS = "\n relations {\n edges {\n relationType(version: 2)\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n chapters\n volumes\n coverImage { extraLarge large medium color }\n genres\n averageScore\n meanScore\n studios { nodes { id name isAnimationStudio siteUrl } }\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n }\n }\n }\n";
|
|
1305
|
+
/** Media Recommendation fields - used for when fetching recommendation for a specific media entry */
|
|
1306
|
+
declare const MEDIA_RECOMMENDATION_FIELDS = "\n __typename\n id\n rating\n mediaRecommendation {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n coverImage { extraLarge large medium color }\n averageScore\n meanScore\n \tepisodes\n \tchapters\n \tvolumes\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n \tseason\n \tseasonYear\n \tstartDate { year month day }\n endDate { year month day }\n \tstudios { nodes { id name isAnimationStudio siteUrl } }\n \tgenres\n siteUrl\n }\n";
|
|
1307
|
+
/** Full media fields with relations — used by existing queries for backward compat. */
|
|
1308
|
+
declare const MEDIA_FIELDS = "\n \n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n\n \n relations {\n edges {\n relationType(version: 2)\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n chapters\n volumes\n coverImage { extraLarge large medium color }\n genres\n averageScore\n meanScore\n studios { nodes { id name isAnimationStudio siteUrl } }\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n }\n }\n }\n\n";
|
|
1309
|
+
/** Character fields without back-reference to media (used when embedding characters inside a Media query). */
|
|
1310
|
+
declare const CHARACTER_FIELDS_COMPACT = "\n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n";
|
|
1311
|
+
/** Compact voice actor fields — lightweight subset for embedding inside character edges. */
|
|
1312
|
+
declare const VOICE_ACTOR_FIELDS_COMPACT = "\n __typename\n id\n name { first middle last full native userPreferred }\n languageV2\n image { large medium }\n gender\n primaryOccupations\n siteUrl\n";
|
|
1313
|
+
declare const CHARACTER_FIELDS = "\n \n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n\n \n media(perPage: 10) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n }\n\n";
|
|
1314
|
+
declare const CHARACTER_FIELDS_WITH_VA = "\n \n __typename\n id\n name { first middle last full native alternative }\n image { large medium }\n description(asHtml: false)\n gender\n dateOfBirth { year month day }\n age\n bloodType\n favourites\n siteUrl\n\n \n media(perPage: 10) {\n edges {\n voiceActors {\n \n __typename\n id\n name { first middle last full native userPreferred }\n languageV2\n image { large medium }\n gender\n primaryOccupations\n siteUrl\n\n }\n node {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n }\n }\n\n";
|
|
1315
|
+
declare const STAFF_FIELDS = "\n __typename\n id\n name { first middle last full native }\n language\n image { large medium }\n description(asHtml: false)\n primaryOccupations\n gender\n dateOfBirth { year month day }\n dateOfDeath { year month day }\n age\n yearsActive\n homeTown\n bloodType\n favourites\n siteUrl\n";
|
|
1316
|
+
declare const STAFF_MEDIA_FIELDS = "\n staffMedia(perPage: $perPage, sort: [POPULARITY_DESC]) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n status\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n averageScore\n meanScore\n popularity\n favourites\n episodes\n trending\n hashtag\n season\n seasonYear\n startDate { year month day }\n endDate { year month day }\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n studios {\n edges {\n node {\n name\n }\n }\n }\n siteUrl\n }\n }\n";
|
|
1317
|
+
declare const USER_FIELDS = "\n __typename\n id\n name\n about(asHtml: false)\n avatar { large medium }\n bannerImage\n isFollowing\n isFollower\n donatorTier\n donatorBadge\n createdAt\n siteUrl\n statistics {\n anime { count meanScore minutesWatched episodesWatched chaptersRead volumesRead }\n manga { count meanScore minutesWatched episodesWatched chaptersRead volumesRead }\n }\n";
|
|
1318
|
+
/** Favorites fragment — lightweight fields for each favorite category. */
|
|
1319
|
+
declare const USER_FAVORITES_FIELDS = "\n favourites {\n anime(perPage: 25) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n coverImage { large medium }\n type\n format\n siteUrl\n }\n }\n manga(perPage: 25) {\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n coverImage { large medium }\n type\n format\n siteUrl\n }\n }\n characters(perPage: 25) {\n nodes {\n __typename\n id\n name { full native }\n image { large medium }\n siteUrl\n }\n }\n staff(perPage: 25) {\n nodes {\n __typename\n id\n name { full native }\n image { large medium }\n siteUrl\n }\n }\n studios(perPage: 25) {\n nodes {\n __typename\n id\n name\n siteUrl\n }\n }\n }\n";
|
|
1320
|
+
declare const MEDIA_LIST_FIELDS = "\n __typename\n id\n mediaId\n status\n score(format: POINT_100)\n progress\n progressVolumes\n repeat\n priority\n private\n notes\n startedAt { year month day }\n completedAt { year month day }\n updatedAt\n createdAt\n media {\n \n __typename\n id\n idMal\n title { romaji english native userPreferred }\n type\n format\n status\n description(asHtml: false)\n startDate { year month day }\n endDate { year month day }\n season\n seasonYear\n episodes\n duration\n chapters\n volumes\n countryOfOrigin\n isLicensed\n source\n hashtag\n trailer { id site thumbnail }\n coverImage { extraLarge large medium color }\n bannerImage\n genres\n synonyms\n averageScore\n meanScore\n popularity\n favourites\n trending\n tags { id name description category rank isMediaSpoiler }\n studios { nodes { id name isAnimationStudio siteUrl } }\n isAdult\n siteUrl\n nextAiringEpisode {\n id\n airingAt\n episode\n mediaId\n timeUntilAiring\n }\n\n }\n";
|
|
1321
|
+
declare const STUDIO_FIELDS = "\n __typename\n id\n name\n isAnimationStudio\n siteUrl\n favourites\n media(page: 1, perPage: 25, sort: POPULARITY_DESC) {\n pageInfo { total perPage currentPage lastPage hasNextPage }\n nodes {\n __typename\n id\n title { romaji english native userPreferred }\n type\n format\n coverImage { large medium }\n siteUrl\n }\n }\n";
|
|
1322
|
+
declare const THREAD_FIELDS = "\n __typename\n id\n title\n body(asHtml: false)\n userId\n replyUserId\n replyCommentId\n replyCount\n viewCount\n isLocked\n isSticky\n isSubscribed\n repliedAt\n createdAt\n updatedAt\n siteUrl\n user {\n __typename\n id\n name\n avatar { large medium }\n }\n replyUser {\n __typename\n id\n name\n avatar { large medium }\n }\n categories {\n __typename\n id\n name\n }\n mediaCategories {\n __typename\n id\n title { romaji english native userPreferred }\n type\n coverImage { large medium }\n siteUrl\n }\n likes {\n __typename\n id\n name\n }\n";
|
|
1323
|
+
|
|
1324
|
+
declare const fragments_CHARACTER_FIELDS: typeof CHARACTER_FIELDS;
|
|
1325
|
+
declare const fragments_CHARACTER_FIELDS_COMPACT: typeof CHARACTER_FIELDS_COMPACT;
|
|
1326
|
+
declare const fragments_CHARACTER_FIELDS_WITH_VA: typeof CHARACTER_FIELDS_WITH_VA;
|
|
1327
|
+
declare const fragments_MEDIA_FIELDS: typeof MEDIA_FIELDS;
|
|
1328
|
+
declare const fragments_MEDIA_FIELDS_BASE: typeof MEDIA_FIELDS_BASE;
|
|
1329
|
+
declare const fragments_MEDIA_FIELDS_LIGHT: typeof MEDIA_FIELDS_LIGHT;
|
|
1330
|
+
declare const fragments_MEDIA_LIST_FIELDS: typeof MEDIA_LIST_FIELDS;
|
|
1331
|
+
declare const fragments_MEDIA_RECOMMENDATION_FIELDS: typeof MEDIA_RECOMMENDATION_FIELDS;
|
|
1332
|
+
declare const fragments_RELATIONS_FIELDS: typeof RELATIONS_FIELDS;
|
|
1333
|
+
declare const fragments_STAFF_FIELDS: typeof STAFF_FIELDS;
|
|
1334
|
+
declare const fragments_STAFF_MEDIA_FIELDS: typeof STAFF_MEDIA_FIELDS;
|
|
1335
|
+
declare const fragments_STUDIO_FIELDS: typeof STUDIO_FIELDS;
|
|
1336
|
+
declare const fragments_THREAD_FIELDS: typeof THREAD_FIELDS;
|
|
1337
|
+
declare const fragments_USER_FAVORITES_FIELDS: typeof USER_FAVORITES_FIELDS;
|
|
1338
|
+
declare const fragments_USER_FIELDS: typeof USER_FIELDS;
|
|
1339
|
+
declare const fragments_VOICE_ACTOR_FIELDS_COMPACT: typeof VOICE_ACTOR_FIELDS_COMPACT;
|
|
1340
|
+
declare namespace fragments {
|
|
1341
|
+
export { fragments_CHARACTER_FIELDS as CHARACTER_FIELDS, fragments_CHARACTER_FIELDS_COMPACT as CHARACTER_FIELDS_COMPACT, fragments_CHARACTER_FIELDS_WITH_VA as CHARACTER_FIELDS_WITH_VA, fragments_MEDIA_FIELDS as MEDIA_FIELDS, fragments_MEDIA_FIELDS_BASE as MEDIA_FIELDS_BASE, fragments_MEDIA_FIELDS_LIGHT as MEDIA_FIELDS_LIGHT, fragments_MEDIA_LIST_FIELDS as MEDIA_LIST_FIELDS, fragments_MEDIA_RECOMMENDATION_FIELDS as MEDIA_RECOMMENDATION_FIELDS, fragments_RELATIONS_FIELDS as RELATIONS_FIELDS, fragments_STAFF_FIELDS as STAFF_FIELDS, fragments_STAFF_MEDIA_FIELDS as STAFF_MEDIA_FIELDS, fragments_STUDIO_FIELDS as STUDIO_FIELDS, fragments_THREAD_FIELDS as THREAD_FIELDS, fragments_USER_FAVORITES_FIELDS as USER_FAVORITES_FIELDS, fragments_USER_FIELDS as USER_FIELDS, fragments_VOICE_ACTOR_FIELDS_COMPACT as VOICE_ACTOR_FIELDS_COMPACT };
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1273
1344
|
/**
|
|
1274
1345
|
* Rate limiter with automatic retry for AniList API.
|
|
1275
1346
|
*
|
|
@@ -1317,4 +1388,4 @@ declare class RateLimiter {
|
|
|
1317
1388
|
|
|
1318
1389
|
declare function parseAniListMarkdown(text: string): string;
|
|
1319
1390
|
|
|
1320
|
-
export { type AiringSchedule, AiringSort, AniListClient, AniListClientOptions, AniListError, CacheAdapter, CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, 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, NormalizedCache, PageInfo, PagedResult, RateLimitInfo, RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, 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 };
|
|
1391
|
+
export { type AiringSchedule, AiringSort, AniListClient, AniListClientOptions, AniListError, CacheAdapter, CacheOptions, type CacheStats, type Character, type CharacterImage, type CharacterIncludeOptions, type CharacterMediaEdge, type CharacterName, CharacterRole, CharacterSort, type DayOfWeek, ExternalLink, type FavoriteCharacterNode, type FavoriteMediaNode, type FavoriteStaffNode, type FavoriteStudioNode, fragments as Fragments, FuzzyDate, type GetAiringOptions, type GetMediaCharactersOptions, type GetMediaStaffOptions, type GetPlanningOptions, type GetRecentChaptersOptions, type GetRecommendationsOptions, type GetSeasonOptions, type GetUserMediaListOptions, 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, NormalizedCache, PageInfo, PagedResult, RateLimitInfo, RateLimitOptions, RateLimiter, type Recommendation, RecommendationSort, 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 };
|